УТ11, расширения - как сделать, чтобы в заказах клиента в подборе товаров добавилась колонка "ЕдиницаДляОтчетов"?

1. DWZ2 20.12.21 01:22 Сейчас в теме
Есть конфигурация УТ 11.4, платформа 8.3.17.

Требуется, чтобы в документе "Заказ клиента", когда вызывается подбор по товару, добавить колонку "ЕдиницаДляОтчетов". (см. рис. 1)

Для этого я:

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

Но это поле всё равно не отображается.

Что я делаю нет так?
Прикрепленные файлы:
DWZ.cfe
Вознаграждение за ответ
Показать полностью
Найденные решения
14. Kolesonik 15 22.12.21 06:18 Сейчас в теме +0.19 $m
(9)Ну тогда просто перенесите процедуру из формы выбора номенклатуры в форму обработки
Прикрепленные файлы:
DWZ_2.cfe
16. DWZ2 26.12.21 00:09 Сейчас в теме
(14)
Спасибо! Всё работает. А это интересная идея создавать программным путём:

&НаСервере
Процедура DWZ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	НовЭлемент = Элементы.Вставить("ЕдиницаДляОтчетов2", Тип("ПолеФормы"), Элементы.СписокРасширенныйПоискНоменклатура,
	Элементы.СписокРасширенныйПоискНоменклатураАртикул);
	НовЭлемент.Вид	= ВидПоляФормы.ПолеНадписи;
	НовЭлемент.ПутьКДанным	= "СписокНоменклатура.ссылка.ЕдиницаДляОтчетов";	
	НовЭлемент.Заголовок	= "Единица отчетов";
	НовЭлемент.Видимость = Истина;

КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Kolesonik 15 20.12.21 07:15 Сейчас в теме
Зайдите в меню Еще/изменить форму встаньте на поле Ссылка, нажмите на зеленый плюсик ,выберите нужное поле,
для решения вашей задачи даже в конфигуратор заходить не надо
glek; collider; +2 Ответить
4. DWZ2 21.12.21 00:53 Сейчас в теме
(2) Не пойдёт. Нужно именно через расширение.

К тому же и тут интересно получается:

1) Добавил в режиме "1С-Предприятие", как Вы и говорили - реквизит есть.
2) Убираю его в режиме "1С-Предприятие", добавляю в Конфигураторе в расширение, запускаю - его нет.
3) Сбрасываю настройки формы - всё равно нет. В "Печатных формах" показывается, что расширение подключено.
4) Захожу под другим пользователем с правами на закупки - всё равно нет реквизита.

В чём дело? Прав каких-то не хватает? Или БСП гадит? Или что?
Прикрепленные файлы:
DWZ.cfe
6. Kolesonik 15 21.12.21 07:04 Сейчас в теме
(4)В запросе уже выбраны все поля ,вам нужна не обработка, а форма выбора номенклатуры, посмотрите модуль формы
Прикрепленные файлы:
DWZ_1.cfe
9. DWZ2 21.12.21 22:24 Сейчас в теме
(6) Не работает, да и Информация для технического специалиста говорит, что используется обработка "ПодборТоваровВДокументПродажи"
Прикрепленные файлы:
14. Kolesonik 15 22.12.21 06:18 Сейчас в теме +0.19 $m
(9)Ну тогда просто перенесите процедуру из формы выбора номенклатуры в форму обработки
Прикрепленные файлы:
DWZ_2.cfe
16. DWZ2 26.12.21 00:09 Сейчас в теме
(14)
Спасибо! Всё работает. А это интересная идея создавать программным путём:

&НаСервере
Процедура DWZ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	НовЭлемент = Элементы.Вставить("ЕдиницаДляОтчетов2", Тип("ПолеФормы"), Элементы.СписокРасширенныйПоискНоменклатура,
	Элементы.СписокРасширенныйПоискНоменклатураАртикул);
	НовЭлемент.Вид	= ВидПоляФормы.ПолеНадписи;
	НовЭлемент.ПутьКДанным	= "СписокНоменклатура.ссылка.ЕдиницаДляОтчетов";	
	НовЭлемент.Заголовок	= "Единица отчетов";
	НовЭлемент.Видимость = Истина;

КонецПроцедуры
Показать
3. user1220551 20.12.21 23:10 Сейчас в теме
Способ (2) сработает, для случая, когда вам нужен именно этот реквизит, но если понадобится что-то еще, то не вариант. В данной форме, текст запроса "СписокНоменклатуры" переопределяется в модуле, там 2, один для расширенного поиска, один для обычного (если я правильно помню) и соответственно, изменение текста запроса в реквизите "СписокНоменклатура" не поможет. Нужно дописывать эти запросы, вручную добавлять элементы в этот список "Реквизит таблицы" или как они там называются, и выводить на форму. Но для "Единица для отчетов" проще через изменить форму, а потом скопировать настройки формы всем, кому это нужно.
5. DWZ2 21.12.21 00:54 Сейчас в теме
(3)
Нужно дописывать эти запросы, вручную добавлять элементы в этот список "Реквизит таблицы" или как они там называются, и выводить на форму.


Это уже теплее. А можно поподробнее?
7. EVKash 16 21.12.21 08:27 Сейчас в теме
(1) А уверены, что СписокСтандартныйПоискНоменклатура?
На скрине СписокРасширенныйПоискНоменклатура.
10. DWZ2 21.12.21 22:25 Сейчас в теме
(7) Ставил и туда - не помогло
8. user1220551 21.12.21 10:04 Сейчас в теме
Если совсем заморачиваться, то запрос строится в
ПодборТоваровСервер.ТекстЗапросаСпискаФормыПодбора
.
Но если проще, то можно процедуры, где он переопределяется, типа
ИспользоватьФильтрыПриИзмененииНаСервере()
и
ВидНоменклатурыПриИзмененииНаСервере()
, Ну еще и при создании, и еще где понадобится добавить свой код, где вы часть запроса меняете на другое, например
СписокНоменклатура.ТекстЗапроса = СтрЗаменить(СписокНоменклатура.ТекстЗапроса,"СправочникНоменклатура.Ссылка КАК Ссылка,", "СправочникНоменклатура.Ссылка КАК Ссылка, "Тут дописываем все поля которые хотим вытащить и как хотим вытащить")
Ну или каким-нибудь другим способом. Как удобнее. Но это мы добавили поля только в запрос, а нужно их добавить еще в реквизит формы "СписокНоменклатуры" собственно и добавляем в этот дин список "Добавить реквизит колонки". А потом его выводим на форму. Через расширение это все безболезненно делается. Ну или не добавлять реквизит колонки, а просто в самом списке переписать запрос, как вы и сделали, но в любом случае, Если вы поставите точку останова, то увидите, что текст запроса в списке не совпадает с тем, что написали вы.
11. DWZ2 21.12.21 22:26 Сейчас в теме
(8) А где бы про всё это прочитать поподробнее?
12. lefthander 21.12.21 22:46 Сейчас в теме
(11)На курсах ... сами знаете где... ссылку не дадут опубликовать
15. DWZ2 22.12.21 18:20 Сейчас в теме
13. user1220551 21.12.21 23:26 Сейчас в теме
(11) Методом тыка и опытным путём.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот