УТ11, расширения - как сделать, чтобы в заказах клиента в подборе товаров добавилась колонка "ЕдиницаДляОтчетов"?
Есть конфигурация УТ 11.4, платформа 8.3.17.
Требуется, чтобы в документе "Заказ клиента", когда вызывается подбор по товару, добавить колонку "ЕдиницаДляОтчетов". (см. рис. 1)
Для этого я:
1) Создал расширение вида "Адаптация"
2) Сбросил у него флажки "Безопасный режим" и "Защита от опасных действий"
3) Добавил в расширение обработку "ПодборТоваровВДокументПродажи"
4) В ней добавил в расширение реквизит "СписокНоменклатура"
5) У этого реквизит в запрос добавил "СправочникНоменклатура.ЕдиницаДляОтчетов КАК ЕдиницаДляОтчетов,"
6) Перетащил поле "ЕдиницаДляОтчетов" на форму (рис. 2)
7) Обновил конфигурацию базы данных клавишей F7.
Но это поле всё равно не отображается.
Что я делаю нет так?
Требуется, чтобы в документе "Заказ клиента", когда вызывается подбор по товару, добавить колонку "ЕдиницаДляОтчетов". (см. рис. 1)
Для этого я:
1) Создал расширение вида "Адаптация"
2) Сбросил у него флажки "Безопасный режим" и "Защита от опасных действий"
3) Добавил в расширение обработку "ПодборТоваровВДокументПродажи"
4) В ней добавил в расширение реквизит "СписокНоменклатура"
5) У этого реквизит в запрос добавил "СправочникНоменклатура.ЕдиницаДляОтчетов КАК ЕдиницаДляОтчетов,"
6) Перетащил поле "ЕдиницаДляОтчетов" на форму (рис. 2)
7) Обновил конфигурацию базы данных клавишей F7.
Но это поле всё равно не отображается.
Что я делаю нет так?
Прикрепленные файлы:


Найденные решения
(14)
Спасибо! Всё работает. А это интересная идея создавать программным путём:
Спасибо! Всё работает. А это интересная идея создавать программным путём:
&НаСервере
Процедура DWZ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
НовЭлемент = Элементы.Вставить("ЕдиницаДляОтчетов2", Тип("ПолеФормы"), Элементы.СписокРасширенныйПоискНоменклатура,
Элементы.СписокРасширенныйПоискНоменклатураАртикул);
НовЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
НовЭлемент.ПутьКДанным = "СписокНоменклатура.ссылка.ЕдиницаДляОтчетов";
НовЭлемент.Заголовок = "Единица отчетов";
НовЭлемент.Видимость = Истина;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Не пойдёт. Нужно именно через расширение.
К тому же и тут интересно получается:
1) Добавил в режиме "1С-Предприятие", как Вы и говорили - реквизит есть.
2) Убираю его в режиме "1С-Предприятие", добавляю в Конфигураторе в расширение, запускаю - его нет.
3) Сбрасываю настройки формы - всё равно нет. В "Печатных формах" показывается, что расширение подключено.
4) Захожу под другим пользователем с правами на закупки - всё равно нет реквизита.
В чём дело? Прав каких-то не хватает? Или БСП гадит? Или что?
К тому же и тут интересно получается:
1) Добавил в режиме "1С-Предприятие", как Вы и говорили - реквизит есть.
2) Убираю его в режиме "1С-Предприятие", добавляю в Конфигураторе в расширение, запускаю - его нет.
3) Сбрасываю настройки формы - всё равно нет. В "Печатных формах" показывается, что расширение подключено.
4) Захожу под другим пользователем с правами на закупки - всё равно нет реквизита.
В чём дело? Прав каких-то не хватает? Или БСП гадит? Или что?
Прикрепленные файлы:
DWZ.cfe
(14)
Спасибо! Всё работает. А это интересная идея создавать программным путём:
Спасибо! Всё работает. А это интересная идея создавать программным путём:
&НаСервере
Процедура DWZ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
НовЭлемент = Элементы.Вставить("ЕдиницаДляОтчетов2", Тип("ПолеФормы"), Элементы.СписокРасширенныйПоискНоменклатура,
Элементы.СписокРасширенныйПоискНоменклатураАртикул);
НовЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
НовЭлемент.ПутьКДанным = "СписокНоменклатура.ссылка.ЕдиницаДляОтчетов";
НовЭлемент.Заголовок = "Единица отчетов";
НовЭлемент.Видимость = Истина;
КонецПроцедуры
Показать
Способ (2) сработает, для случая, когда вам нужен именно этот реквизит, но если понадобится что-то еще, то не вариант. В данной форме, текст запроса "СписокНоменклатуры" переопределяется в модуле, там 2, один для расширенного поиска, один для обычного (если я правильно помню) и соответственно, изменение текста запроса в реквизите "СписокНоменклатура" не поможет. Нужно дописывать эти запросы, вручную добавлять элементы в этот список "Реквизит таблицы" или как они там называются, и выводить на форму. Но для "Единица для отчетов" проще через изменить форму, а потом скопировать настройки формы всем, кому это нужно.
Если совсем заморачиваться, то запрос строится в .
Но если проще, то можно процедуры, где он переопределяется, типа и
, Ну еще и при создании, и еще где понадобится добавить свой код, где вы часть запроса меняете на другое, например Ну или каким-нибудь другим способом. Как удобнее. Но это мы добавили поля только в запрос, а нужно их добавить еще в реквизит формы "СписокНоменклатуры" собственно и добавляем в этот дин список "Добавить реквизит колонки". А потом его выводим на форму. Через расширение это все безболезненно делается. Ну или не добавлять реквизит колонки, а просто в самом списке переписать запрос, как вы и сделали, но в любом случае, Если вы поставите точку останова, то увидите, что текст запроса в списке не совпадает с тем, что написали вы.
ПодборТоваровСервер.ТекстЗапросаСпискаФормыПодбора
Но если проще, то можно процедуры, где он переопределяется, типа
ИспользоватьФильтрыПриИзмененииНаСервере()
ВидНоменклатурыПриИзмененииНаСервере()
СписокНоменклатура.ТекстЗапроса = СтрЗаменить(СписокНоменклатура.ТекстЗапроса,"СправочникНоменклатура.Ссылка КАК Ссылка,", "СправочникНоменклатура.Ссылка КАК Ссылка, "Тут дописываем все поля которые хотим вытащить и как хотим вытащить")
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот