Имя: Пароль:
1C
1С v8
Как вывести реквизиты вычисляемого поля в СКД?
,
0 Гений 1С
 
гуру
14.05.22
18:33
Я добавил вычисляемое поле и в схеме СКД указал его тип, но не могу выводить реквизиты.
В итоге вывожу их через функцию.

СертификатНоменклатуры(Номенклатура, Характеристика)
СертификатНоменклатуры(Номенклатура, Характеристика, "ДатаНачалаСрокаДействия")
СертификатНоменклатуры(Номенклатура, Характеристика, "ДатаОкончанияСрокаДействия")


Мне надо два реквизита, это вызывает дублирование вычислений. Как избежать?


Функция СертификатНоменклатуры(Номенклатура, Характеристика) Экспорт
    З = Новый Запрос(
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Т.Ссылка КАК Ссылка,
    |    Т.Наименование КАК Наименование,
    |    Т.ДатаОкончанияСрокаДействия КАК ДатаОкончанияСрокаДействия,
    |    Т.ДатаНачалаСрокаДействия КАК ДатаНачалаСрокаДействия
    |ИЗ
    |    Справочник.СертификатыНоменклатуры КАК Т
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОбластиДействияСертификатовНоменклатуры КАК Р
    |        ПО (Р.СертификатНоменклатуры = Т.Ссылка)
    |ГДЕ
    |    Р.Номенклатура = &Номенклатура
    |    И Р.Характеристика = &Характеристика
    |
    |УПОРЯДОЧИТЬ ПО
    |    Т.ДатаОкончанияСрокаДействия УБЫВ");
    З.УстановитьПараметр("Номенклатура", Номенклатура);
    З.УстановитьПараметр("Характеристика", Характеристика);
    Выборка = З.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        //Возврат "" + Выборка.Наименование + " " + Формат(Выборка.ДатаНачалаСрокаДействия, "ДФ=dd.MM.yy") + "-" + Формат(Выборка.ДатаОкончанияСрокаДействия, "ДФ=dd.MM.yy");
        Возврат Выборка.Ссылка;
    КонецЕсли;
КонецФункции

Функция СертификатНоменклатурыРеквизит(Номенклатура, Характеристика, Реквизит) Экспорт
    Значение = СертификатНоменклатуры(Номенклатура, Характеристика);
    Если ЗначениеЗаполнено(Значение) Тогда
        Возврат Значение[Реквизит];
    КонецЕсли;
КонецФункции
1 Ненавижу 1С
 
гуру
14.05.22
23:49
У общих модулей есть свойство повторное использование
2 Гений 1С
 
гуру
15.05.22
09:43
(1) да, я думал об этом, но хочется по-человечески.
3 Ненавижу 1С
 
гуру
15.05.22
18:46
(2) в чем бесчеловечность кэширования данных общими модулями?
4 echo77
 
15.05.22
19:48
Набором данных Запрос справа прикрутить не получается?
5 Гений 1С
 
гуру
18.05.22
20:27
(3) костыль
6 Ненавижу 1С
 
гуру
19.05.22
09:42
(5) ты первый начал их лепить ))
7 Trance_1C
 
19.05.22
11:01
(0) А если добавить это поле в запрос с пустым значением (в поля компоновки тоже добавить), а затем переопределить его в вычисляемых полях, реквизиты должны появиться
8 Trance_1C
 
19.05.22
11:03
Вообще, почему бы не добавить выборку сертификата в основной запрос, он вроде 1к1 по номенклатуре выбирается...
9 Гений 1С
 
гуру
19.05.22
21:00
(8) именно что вроде. Там запрос объединением. Можно, конечно влезть, но ну его в попу
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс