Как добавить колонку Номенклатура в списке документов Заявка покупателя?

1. metisluvre 30.10.19 18:43 Сейчас в теме
Как добавить колонку Номенклатура в списке документов Заявка покупателя как это реализовано в списке документов Заказы на производство (номенклатура+характеристика+количество)?
При этом в реквизитах ЗаказПокупателя уже есть реквизит СписокНоменклатуры аналогичный ЗаказаНаПроизводство.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
20. xSavantx 25 01.11.19 05:13 Сейчас в теме
(17) Нашел у себя на компе старенькую конфигурацию унф трехлетней давности))) Посмотрел. Там список номенклатуры заполняется только если вид операции = заказ наряд. Т.е. по-сути можно даже новый реквизит не создавать, а запихнуть все в имеющийся, если вы заказ-нарядами не пользуетесь.

Если ВидОперации = Перечисления.ВидыОперацийЗаказПокупателя.ЗаказНаряд Тогда

СписокРесурсов = "";
Для Каждого СтрокаРесурс Из РесурсыПредприятия Цикл
СписокРесурсов = СписокРесурсов + ?(СписокРесурсов = "","","; " + Символы.ПС) + СокрЛП(СтрокаРесурс.РесурсПредприятия);
КонецЦикла;

СписокНоменклатуры = "";
Для Каждого СтрокаНоменклатура Из Работы Цикл
ХарактеристикаПредставление = "";
Если Константы.ФункциональнаяОпцияИспользоватьХарактеристики.Получить()
И ЗначениеЗаполнено(СтрокаНоменклатура.Характеристика) Тогда
ХарактеристикаПредставление = " (" + СокрЛП(СтрокаНоменклатура.Характеристика) + ")";
КонецЕсли;
КоличествоНоменклатуры = СтрокаНоменклатура.Количество * СтрокаНоменклатура.Кратность * СтрокаНоменклатура.Коэффициент;
СписокНоменклатуры = СписокНоменклатуры + ?(СписокНоменклатуры = "","","; " + Символы.ПС) + СокрЛП(СтрокаНоменклатура.Номенклатура) + ХарактеристикаПредставление + ", " + КоличествоНоменклатуры + " " + СокрЛП(Справочники.КлассификаторЕдиницИзмерения.ч);
КонецЦикла;

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВидыЗаказНарядов") Тогда
ЭтотОбъект.ВидЗаказа = Справочники.ВидыЗаказНарядов.Основной;
КонецЕсли;

Иначе

//////Сюда вставь заполнение списка из запасов

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВидыЗаказовПокупателей") Тогда
ЭтотОбъект.ВидЗаказа = Справочники.ВидыЗаказовПокупателей.Основной;
КонецЕсли;

КонецЕсли;
metisluvre; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 31.10.19 02:23 Сейчас в теме
(1)не понимаю зачем это надо, но по сути посмотреть как реализовано в заказе на производство и аналогично сделать в заказе покупателя
5. metisluvre 31.10.19 10:53 Сейчас в теме
(2) дело в том, что менеджеры при оформлении заказа, в комментариях для каждого наименования оставляют заметки для быстрого поиска. Но помимо этого напротив каждого наименования есть еще комментарии, это уже важно для производства. Нужно чтобы в колонке Номенклатура выводилась информация из заказа
Прикрепленные файлы:
8. metisluvre 31.10.19 11:39 Сейчас в теме
(2) Вставил аналогично ЗаказаНаПроизводство строку в запрос, появился реквизит, и кинул его на форму. В 1с Предприятии появилась долгожданная колонка, но она ничего не выводит, даже после перепроведения документа
Прикрепленные файлы:
10. YannikAlx 43 31.10.19 11:44 Сейчас в теме
(8) Вы думает , что данные сами приползут в вами созданный реквизит только потому что вы ему дали название СписокНоменклатуры?
А если бы вы дали ему название СуммаденегВМоемКармане - он по вашему должен деньки в вашем кармане посчитать?
Думайте немного...
3. xSavantx 25 31.10.19 05:15 Сейчас в теме
(1) В конфигураторе открой форму списка документов "Заявка покупателя". В реквизитах найди "Список" типа "ДинамическийСписок". В свойствах посмотри "Настройка списка". В Запросе присутствует СписокНоменклатуры? Аналогично проверь у заказов на производство
6. metisluvre 31.10.19 11:02 Сейчас в теме
(3)Спасибо, в запросе Динамического списка Форма списка заказ покупателя не присутствует СписокНоменклатуры. Вот скрин из динамического списка ЗаказаНаПроизводство
Прикрепленные файлы:
11. xSavantx 25 31.10.19 11:46 Сейчас в теме
(6) Ну тогда ответ очевиден. Без изменения конфигурации нельзя сделать то, что вы хотите. Если вам все-же нужно - добавьте поле СписокНоменклатуры в запрос списка у заявки покупателей и выведите его в форму. Ну либо через расширения сделайте :)
14. metisluvre 31.10.19 12:00 Сейчас в теме
(11)я не боюсь изменять, я это уже сделал, но мне не хватает опыта для дальнейшего
12. xSavantx 25 31.10.19 11:51 Сейчас в теме
(6) И еще. Могу ошибаться (это вы уже выясните экспериментальным путем), но вроде в заявках покупателей в УНФ в список номенклатуры попадают только работы
metisluvre; +1 Ответить
13. metisluvre 31.10.19 11:58 Сейчас в теме
(12) Это действительно так, как быть, есть возможность заменить Работы на Запасы?
Прикрепленные файлы:
15. xSavantx 25 31.10.19 12:05 Сейчас в теме
(13) Ну лично я бы не стал. Если такой реквизит есть, значит он уже где-то используется. Добавьте свой, назовите его "СписокТоваров". При записи его заполняйте (по аналогии с работами), добавьте в динамический список и выведите на форму списка.
metisluvre; +1 Ответить
16. xSavantx 25 31.10.19 12:08 Сейчас в теме
(15) На всякий случай дам совет: если надумали изменять конфигурацию - ко всем новым объектам подставляйте какой-нибудь префикс. Например, "прф_" или что-то в этом духе. Т.е. новый реквизит называете не "СписокТоваров", а "прф_СписокТоваров". В дальнейшем себе спасибо скажете. Ну либо другой программист, который будет обновлять конфигурацию скажет вам спасибо)))
metisluvre; +1 Ответить
17. metisluvre 31.10.19 15:09 Сейчас в теме
(16)Ну, создал реквизит Изм_СписокНоменклатуры. На форме списка в динамическом списке добавил этот запрос. Кинул на форму. В модуле объекта ЗаказаПокупателя в процедуре ПередЗаписью добавил следующий код, и не сработало.
Прикрепленные файлы:
19. xSavantx 25 01.11.19 04:52 Сейчас в теме
(17) Я бы поставил точку останова (F9) на строчке "Изм_СписокНоменклатуры = Изм_СписокНоменклатуры + ..." и посмотрел, что там присваивается. Возможно до этой строчки вообще не доходит (например, выше есть какое-либо условие на вид заказа). Еще бы проверил тип новой переменной, убедился бы что он строковый.
metisluvre; +1 Ответить
20. xSavantx 25 01.11.19 05:13 Сейчас в теме
(17) Нашел у себя на компе старенькую конфигурацию унф трехлетней давности))) Посмотрел. Там список номенклатуры заполняется только если вид операции = заказ наряд. Т.е. по-сути можно даже новый реквизит не создавать, а запихнуть все в имеющийся, если вы заказ-нарядами не пользуетесь.

Если ВидОперации = Перечисления.ВидыОперацийЗаказПокупателя.ЗаказНаряд Тогда

СписокРесурсов = "";
Для Каждого СтрокаРесурс Из РесурсыПредприятия Цикл
СписокРесурсов = СписокРесурсов + ?(СписокРесурсов = "","","; " + Символы.ПС) + СокрЛП(СтрокаРесурс.РесурсПредприятия);
КонецЦикла;

СписокНоменклатуры = "";
Для Каждого СтрокаНоменклатура Из Работы Цикл
ХарактеристикаПредставление = "";
Если Константы.ФункциональнаяОпцияИспользоватьХарактеристики.Получить()
И ЗначениеЗаполнено(СтрокаНоменклатура.Характеристика) Тогда
ХарактеристикаПредставление = " (" + СокрЛП(СтрокаНоменклатура.Характеристика) + ")";
КонецЕсли;
КоличествоНоменклатуры = СтрокаНоменклатура.Количество * СтрокаНоменклатура.Кратность * СтрокаНоменклатура.Коэффициент;
СписокНоменклатуры = СписокНоменклатуры + ?(СписокНоменклатуры = "","","; " + Символы.ПС) + СокрЛП(СтрокаНоменклатура.Номенклатура) + ХарактеристикаПредставление + ", " + КоличествоНоменклатуры + " " + СокрЛП(Справочники.КлассификаторЕдиницИзмерения.ч);
КонецЦикла;

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВидыЗаказНарядов") Тогда
ЭтотОбъект.ВидЗаказа = Справочники.ВидыЗаказНарядов.Основной;
КонецЕсли;

Иначе

//////Сюда вставь заполнение списка из запасов

Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВидыЗаказовПокупателей") Тогда
ЭтотОбъект.ВидЗаказа = Справочники.ВидыЗаказовПокупателей.Основной;
КонецЕсли;

КонецЕсли;
metisluvre; +1 Ответить
21. metisluvre 01.11.19 10:47 Сейчас в теме
(20) Спасибо большое! В код не заглядывал два года. Спасибо!
4. YannikAlx 43 31.10.19 09:37 Сейчас в теме
У вас самое главное принципиальное отличие - в производстве (в заказе) тип номенклатуры - Строка, а в Заявке - динамический список.
Я подозреваю, что в заказе номенклатура просто добавляется в строку через разделитель и выводится одной строкой и потому доступна в колонке.
Если вы приведете в заявке список к такому же виду - то есть вся номенклатура в одной строке, то имеет смысл выводить ее в колонку.
Ибо в форме списка должна быть 1 строка по каждому документу и соответственно вся номеклатура в строчном формате...
7. metisluvre 31.10.19 11:28 Сейчас в теме
(4)В реквизитах ЗаказаНаПроизводства и ЗаказПокупателя реквизит СписокНоменклатуры это Строка. В ЗаказеНаПроизводство СписокНоменклатуры находится в динамическом списке, а в ЗаказеПокупателя этого реквизита совсем нет, но он есть в Данных-Реквизиты документа ЗаказПокупателя
9. YannikAlx 43 31.10.19 11:42 Сейчас в теме
(7) Вы пониаете что у документа может быть табличная часть? И если номенклатура там, то КАК вы хотите ее вывести в одну строчку в колонке формы списка?
Я и говорю вам что сначала ее нужно привести к строковому реквизиту документа суммированием названий номенклатур из таблицы возможно, и потом благополучно выводить на форму...
18. metisluvre 31.10.19 17:03 Сейчас в теме
(4)Я Сделал в сообщение (17), ничего не выводит, не выводит даже "слово" в Изм_СписокНоменклатуры = "слово"; Что я пропустил
Оставьте свое сообщение

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