![]() |
|
открыть форму списка справочника с подсвечеными строками | ☑ | ||
---|---|---|---|---|
0
fdgd98
05.03.15
✎
08:39
|
Есть задача при открытии формы списка справочника подстветить строки где наименование допустим яблоки, осталось 10 шт.
Возникает вопрос,как целесообразно это дело организовать? понятно в форме списка в событии присозданиинасервере сначало сделать запрос в регистр накопления, узнать оставшееся количество и записать это количество в реквизит справочника, а далее уже через условное формление программно подстветить те строки где количество <10. Вопрос: не возникнут ли тормоза при открытии? |
|||
1
butterbean
05.03.15
✎
08:41
|
возникнут, именно поэтому нужно использовать произвольный запрос в динамическом списке + условное оформление
|
|||
2
fdgd98
05.03.15
✎
08:42
|
(1) а возникнут изза чего? изза того что к регистру будет частое обращение? или изза подстветки?
|
|||
3
butterbean
05.03.15
✎
08:50
|
(2) запись остатков в реквизит справочника — это просто в корне неправильно и ооооооооочень долго
|
|||
4
fdgd98
05.03.15
✎
08:50
|
вопрос сразу такой: в справочнике на данный момент есть реквизит количество, но в нем данных нет. Каким образом в реквизит количество загнать остатки из регистра накопления? В произвольном запросе чтоли в том же где выводиться форма списка там же как то обратиться и к регистру?
|
|||
5
fdgd98
05.03.15
✎
08:51
|
(3) а как правильно, просто вообще не выводить количество в справочнике ?
|
|||
6
fdgd98
05.03.15
✎
08:51
|
(3) и почему не правильно?
|
|||
7
butterbean
05.03.15
✎
08:56
|
(5) вдумчиво перечитай (1)
|
|||
8
fdgd98
05.03.15
✎
09:01
|
(7) с условным все ясно, просто в этом динамическом списке такой запрос:
ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ВерсияДанных, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.НаименованиеПолное, СправочникНоменклатура.ЕдиницаИзмерения, СправочникНоменклатура.Услуга, СправочникНоменклатура.ВидОборудования, СправочникНоменклатура.УчетПоСерийнымНомерам, СправочникНоменклатура.УчетВБухтах, СправочникНоменклатура.УчетПоХарактеристикам, СправочникНоменклатура.Комментарий, СправочникНоменклатура.ТипЭлемента, СправочникНоменклатура.СпециальноеНаименование, СправочникНоменклатура.Количество, СправочникНоменклатура.Производство2уровня ИЗ Справочник.Номенклатура КАК СправочникНоменклатура как видишь количество тут не заполняется...мне надо создать еще вложенный запрос к регистру чтоли? |
|||
9
fdgd98
05.03.15
✎
09:13
|
ап
|
|||
10
mikecool
05.03.15
✎
09:15
|
(8) ты правильно думаешь
левое соединение к регистру за останками |
|||
11
fdgd98
05.03.15
✎
09:58
|
блин не знаю как обратиться к динамическому списку из события присозданиинасервере?
|
|||
12
fdgd98
05.03.15
✎
11:06
|
ребят кто знает как обратиться к динамическому списку из события присозданиинасервере?
|
|||
13
ДенисЧ
05.03.15
✎
11:07
|
а азчем?
|
|||
14
fdgd98
05.03.15
✎
11:11
|
(13) а как тогда в этом событие перебрать строчки динамического списка?
|
|||
15
Strogg
05.03.15
✎
11:12
|
(10) +и не к одному. В зависимости от настроек еще надо заказы, товары_в_дороге, или как бишь их там...
|
|||
16
fdgd98
05.03.15
✎
11:13
|
(15) ты о чем? один регистр всего
|
|||
17
Strogg
05.03.15
✎
11:14
|
(16) ну, хорошо, если один.
|
|||
18
ДенисЧ
05.03.15
✎
11:14
|
(14) ЗАЧЕМ????? Зачем тебе перебирать строки ДИНАМИЧЕСКОГО списка????
|
|||
19
fdgd98
05.03.15
✎
11:18
|
(18) буду каждую строку вернее поле динамического списка использовать в качестве параметра для запроса в регистр
|
|||
20
ДенисЧ
05.03.15
✎
11:18
|
(19) А не проще сразу об стенку?
|
|||
21
Strogg
05.03.15
✎
11:19
|
(19) не будь. Юзай условное оформление)))
|
|||
22
fdgd98
05.03.15
✎
11:20
|
(20) проходи мимо пожалуйста
|
|||
23
ДенисЧ
05.03.15
✎
11:21
|
(22) Я то пройду...
Мне на твои проблемы вообще с высокой колокольни... Но надо же поучить-побурчать... А то после таких вот пейсателей и будут говорить, что 1с глючная и тормозная программа... |
|||
24
fdgd98
05.03.15
✎
11:22
|
(23) так я и спрашиваю совета прочти начало темы
|
|||
25
ДенисЧ
05.03.15
✎
11:22
|
(24) Так тебе уже ответили полно и развёрнуто.
И заметь - ни в одном ответе нет "перебирать строки ДС и по каждой делать запрос в регистр"... |
|||
26
fdgd98
05.03.15
✎
11:26
|
(25) ок я тебя понял
|
|||
27
DrZombi
гуру
05.03.15
✎
11:29
|
(0) Используй Условное оформление.
|
|||
28
DrZombi
гуру
05.03.15
✎
11:30
|
(19) Зачем?
|
|||
29
DrZombi
гуру
05.03.15
✎
11:30
|
(26) Ничего ты не понял, но продолжай :)
|
|||
30
DrZombi
гуру
05.03.15
✎
11:30
|
(25) И через пол года, может пользователь и развернет сей список :)
|
|||
31
fdgd98
05.03.15
✎
11:48
|
как объединить два запроса?
ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ВерсияДанных, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.НаименованиеПолное, СправочникНоменклатура.ЕдиницаИзмерения, СправочникНоменклатура.Услуга, СправочникНоменклатура.ВидОборудования, СправочникНоменклатура.УчетПоСерийнымНомерам, СправочникНоменклатура.УчетВБухтах, СправочникНоменклатура.УчетПоХарактеристикам, СправочникНоменклатура.Комментарий, СправочникНоменклатура.ТипЭлемента, СправочникНоменклатура.СпециальноеНаименование, СправочникНоменклатура.Количество, СправочникНоменклатура.Производство2уровня ИЗ Справочник.Номенклатура КАК СправочникНоменклатура и "ВЫБРАТЬ // | ЭлементарнаяЕдиницаНаСкладОстатки.Склады, // | ЭлементарнаяЕдиницаНаСкладОстатки.Наименование, // | ЭлементарнаяЕдиницаНаСкладОстатки.ЕдИзмерения, // | ЭлементарнаяЕдиницаНаСкладОстатки.СпециальноеНаименование, // | СУММА(ЭлементарнаяЕдиницаНаСкладОстатки.КоличествоОстаток) КАК КоличествоОстаток // |ИЗ // | РегистрНакопления.ЭлементарнаяЕдиницаНаСклад.Остатки(&ДатаОстатков, СпециальноеНаименование = &СпециальноеНаименование) КАК ЭлементарнаяЕдиницаНаСкладОстатки // | // |СГРУППИРОВАТЬ ПО // | ЭлементарнаяЕдиницаНаСкладОстатки.Наименование, // | ЭлементарнаяЕдиницаНаСкладОстатки.Склады, // | ЭлементарнаяЕдиницаНаСкладОстатки.ЕдИзмерения, // | ЭлементарнаяЕдиницаНаСкладОстатки.СпециальноеНаименование"; где значение из 1 запроса СправочникНоменклатура.СпециальноеНаименование является параметром 2 запроса? |
|||
32
palpetrovich
05.03.15
✎
12:33
|
(31) так примерно
ВЫБРАТЬ СправочникНоменклатура.Ссылка, ЭлементарнаяЕдиницаНаСкладОстатки.КоличествоОстаток ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЭлементарнаяЕдиницаНаСклад.Остатки(&ДатаОстатков, ) КАК ЭлементарнаяЕдиницаНаСкладОстатки ПО СправочникНоменклатура.Ссылка = ЭлементарнаяЕдиницаНаСкладОстатки.Наименование |
|||
33
fdgd98
05.03.15
✎
13:07
|
(32) спасибо, но проблема в том что ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЭлементарнаяЕдиницаНаСклад.Остатки(&ДатаОстатков, ) тут должен быть еще один параметр, который запросом должен браться из справочниканоменклатура
|
|||
34
ДенисЧ
05.03.15
✎
13:10
|
(33) тебе в (32) дали готовый запрос. Что ты там ещё изобретаешь??
|
|||
35
fdgd98
05.03.15
✎
13:24
|
(34) Денис, я сейчас вообщем сделал запросик, количество в формесписка справочника уменьшилось....
ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ВерсияДанных, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.НаименованиеПолное, СправочникНоменклатура.ЕдиницаИзмерения, СправочникНоменклатура.Услуга, СправочникНоменклатура.ВидОборудования, СправочникНоменклатура.УчетПоСерийнымНомерам, СправочникНоменклатура.УчетВБухтах, СправочникНоменклатура.УчетПоХарактеристикам, СправочникНоменклатура.Комментарий, СправочникНоменклатура.ТипЭлемента, СправочникНоменклатура.СпециальноеНаименование, СправочникНоменклатура.Количество, СправочникНоменклатура.Производство2уровня.( Ссылка, НомерСтроки, ЭлементОбозначенных, Количество ), ЭлементарнаяЕдиницаНаСкладОстатки.Склады, ЭлементарнаяЕдиницаНаСкладОстатки.Наименование КАК Наименование1, ЭлементарнаяЕдиницаНаСкладОстатки.ЕдИзмерения, ЭлементарнаяЕдиницаНаСкладОстатки.СпециальноеНаименование КАК СпециальноеНаименование1, ЭлементарнаяЕдиницаНаСкладОстатки.КоличествоОстаток ИЗ РегистрНакопления.ЭлементарнаяЕдиницаНаСклад.Остатки КАК ЭлементарнаяЕдиницаНаСкладОстатки ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура ПО ЭлементарнаяЕдиницаНаСкладОстатки.Наименование = СправочникНоменклатура.Ссылка |
|||
36
fdgd98
05.03.15
✎
13:26
|
(34) он похоже выводит всех тех у что есть в регистре...
|
|||
37
palpetrovich
05.03.15
✎
13:42
|
(36) в общем, я заинтересовался вопросом, получилось так:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки(&Дата, ) КАК ОстаткиОстатки | ПО Номенклатура.Ссылка = ОстаткиОстатки.Товар | И ОстаткиОстатки.КоличествоОстаток < 100 |"; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда СписокТоваров = НОВЫЙ СписокЗначений(); СписокТоваров.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка")); ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить(); ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЭлементОтбора.ПравоеЗначение = СписокТоваров; ЭлементОтбора.Использование = Истина; //фон строки Элемент=ЭлементОформления.Оформление.Элементы[0]; Элемент.Использование=Истина; Элемент.Значение=Новый Цвет(255,255,153); Иначе Элемент=ЭлементОформления.Оформление.Элементы[0]; Элемент.Использование=Истина; Элемент.Значение=Новый Цвет(255,255,255); КонецЕсли; КонецПроцедуры Красит так как задумано, правда я сильно сомневаюсь в правильности этой реализации, ибо делаю запрос ко всему справочнику :) |
|||
38
ДенисЧ
05.03.15
✎
13:43
|
(36) Соединяй справочник слева, регистр справа, а не наоборот.
|
|||
39
fdgd98
05.03.15
✎
13:50
|
(38) внезапно сделал)спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |