|
Сформировать ЗаказПоставщику из Табличной Части/ | ☑ | ||
---|---|---|---|---|
0
DmitriiKr
16.11.20
✎
13:06
|
Доброго времени суток.
Для каждого СтрТЧ Из ТЧ Цикл ДокументЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент(); ДокументЗаказПоставщику.Дата = ТекущаяДата(); ДокументЗаказПоставщику.Контрагент = СтрТЧ.Номенклатура.Поставщик; ДокументЗаказПоставщику.Склад = Склад; НоваяСтрокаТЧДокумента = ДокументЗаказПоставщику.Товары.Добавить(); НоваяСтрокаТЧДокумента.Номенклатура = СтрТЧ.Номенклатура; НоваяСтрокаТЧДокумента.Количество = СтрТЧ.КупитьНужно; НоваяСтрокаТЧДокумента.Сумма = СтрТЧ.ЦенаЗакупки; ДокументЗаказПоставщику.Записать(); ДокументЗаказПоставщику.Записать(РежимЗаписиДокумента.ОтменаПроведения); Сообщить("Создан документ: заказ поставщику " + СтрТЧ.Номенклатура.Поставщик + " на товар " + СтрТЧ.Номенклатура + " в количестве " + СтрТЧ.КупитьНужно + " шт."); Элементы.СозданиеЗаказаПотавщику.Доступность = Ложь; КонецЦикла; Этот код просто берет значения которые указаны в ТЧ на форме (в обработке), данные на форме получаются из документа:ЗаказПокупателя за определенный период. Так вот застрял на том: В Табличной части есть несколько номенклатурой с одним и темже поставщиком. Как сделать так чтобы заказПоставщику формировался по одному поставщику с несколькими номенклатурами. Я так понимаю что можно просто выбрать разных поставщиков из ТЧ потом перебрать строки по каждому. Но вот хоть убей не понимаю как мне это сделать.... |
|||
1
Kigo_Kigo
16.11.20
✎
13:36
|
А где циклы по ТЧ, где проверка на поставщика?
|
|||
2
spiller26
16.11.20
✎
13:39
|
(0) ТабЧасть в ТабЗначений, сверни по Номенклатуре и Поставщику.
|
|||
3
DmitriiKr
16.11.20
✎
13:40
|
Так вот я не понимаю как это сделать. Пните в направление...Т.е. я так понимаю нужно сделать цикл в цикле?
|
|||
4
DmitriiKr
16.11.20
✎
13:40
|
Я когда сворачиваю то остается только поле поставщик все остальные поля пустые
|
|||
5
spiller26
16.11.20
✎
13:42
|
(4) Код в студию
|
|||
6
shuhard
16.11.20
✎
13:43
|
(3) да, нужны итоги в запросе и обход в два уровня
|
|||
7
Kigo_Kigo
16.11.20
✎
13:46
|
Как минимум, добавить колонку "Поставщик", пройтись и ее заполнить из СтрТЧ.Номенклатура.Поставщик;
после сортировать по колонке Поставщик Если Поставщик = СтрТЧ.Поставщик, пишем новую строку в создаваемы документ, если <> то запоминаем нового поставщика, создаем новый док |
|||
8
spiller26
16.11.20
✎
13:48
|
ТаблЗнач = ДокТаблЧастьТовары.Выгрузить();
ТаблЗнач.Колонки.Добавить("Поставщик"); Для Каждого СтрТаб Из ТаблЗнач Цикл СтрТаб.Поставщик = СтрТаб.Номенклатура.Поставщик; КонецЦикла; ТаблЗнач.Свернуть("Поставщик, Номенклатура", "Количество, Сумма"); |
|||
9
spiller26
16.11.20
✎
13:54
|
(8) ТаблЗначСв = ТаблЗнач.Скопировать();
ТаблЗначСв.Свернуть("Поставщик",""); Для Каждого СтрСв Из ТаблЗначСв Цикл СтруктураПоиска = Новый Структура(); СтруктураПоиска.Вставить("Поставщик",СтрСв.Поставщик); НайденныеСтроки = ТаблЗнач.НайтиСтроки(СтруктураПоиска); Если НайденныеСтроки.Количество() > 0 Тогда //Создаёшь новый док, заполняешь шапку Для Каждого СтрНайденыш Из НайденныеСтроки Цикл //Заполняешь таб часть конецЦикла; КонецЕсли; КонецЦикла; |
|||
10
DmitriiKr
16.11.20
✎
14:06
|
ТаблЗнач = ЭтотОбъект.ТЧ.Выгрузить();
ТаблЗначСв = ТаблЗнач.Скопировать(); ТаблЗначСв.Свернуть("Поставщик",""); Для Каждого СтрСв Из ТаблЗначСв Цикл СтруктураПоиска = Новый Структура(); СтруктураПоиска.Вставить("Поставщик",СтрСв.Поставщик); НайденныеСтроки = ТаблЗнач.НайтиСтроки(СтруктураПоиска); Если НайденныеСтроки.Количество() > 0 Тогда // создаем новый документ ДокументЗаказПоставщику = Документы.ЗаказПоставщику.СоздатьДокумент(); ДокументЗаказПоставщику.Дата = ТекущаяДата(); ДокументЗаказПоставщику.Контрагент = СтрСв.Поставщик; ДокументЗаказПоставщику.Склад = Склад; Для Каждого СтрНайденыш Из НайденныеСтроки Цикл НоваяСтрокаТЧДокумента = ДокументЗаказПоставщику.Товары.Добавить(); НоваяСтрокаТЧДокумента.Номенклатура = СтрНайденыш.Номенклатура; НоваяСтрокаТЧДокумента.Количество = СтрНайденыш.КупитьНужно; НоваяСтрокаТЧДокумента.Сумма = СтрНайденыш.ЦенаЗакупки; ДокументЗаказПоставщику.Записать(); ДокументЗаказПоставщику.Записать(РежимЗаписиДокумента.ОтменаПроведения); Сообщить("Создан документ: заказ поставщику " + СтрНайденыш.Номенклатура.Поставщик + " на товар " + СтрНайденыш.Номенклатура + " в количестве " + СтрНайденыш.КупитьНужно + " шт."); Элементы.СозданиеЗаказаПотавщику.Доступность = Ложь; конецЦикла; КонецЕсли; КонецЦикла; Вот так вот получилось. СПАСИБО БОЛЬШОЕ!!!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |