Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 09:15

Связь табличной части Товары и ВидыЗапасов

Автор xDD, 11 дек 2015, 17:35

0 Пользователей и 1 гость просматривают эту тему.

xDD

Из Розницы выгружается Отчет о розничных продажах в тч товары есть колонка Виды оплаты (Наличная, безналичная).
В тч Виды запасов добавлена такая же колонка. Необходимо в соответствии с количеством по виду оплаты заполнить тч ВидыЗапасов.
За счет того, что тч Виды запасов формируется автоматически (за счет определения остатка товара по его типу запасов, за счет определения ГТД), то никакой связи между тч Товары и Виды Запасов нет - одна рассчитывается на основе другой.
На текущий момент сложность в чем  - Виде запасов 1 строка, номенклатуры 664 - V, товар собственный.
Но в тч Товары 2 строки - 1 строка наличная оплата, 2 строка - безналичная.
Получается что в виде запасов нужно строку разбить на 2 по виду оплаты и заполнить их.   

тч товары

N   Номенклатура   Ед. изм.   Продано   Цена   Сумма   Вид оплаты
1   664 - V           шт.           1,000   5 705,00   5 705,00   Платежная карта
2   664 - V           шт.           1,000   5 705,00   5 705,00   Безналичная
..............................................................................................
7   664 - V           шт.           2,000   5 705,00   11 410,00   Платежная карта

тч Виды Запасов
НомерСтроки   Номенклатура   ВидЗапасов      Количество   Партнер                   ВидОплаты   ИсходныйНомерСтроки   НомерГТД
        1               664 - V   Собственный товар   4   Розничный покупатель                                      1   

Подскажите у кого есть мысли, как должен выглядеть алгоритм правильного перебора, чтобы заполнить ВидОплаты в ВидеЗапасов.

Думаю двигаться вот в этом направлении:

ТЗТовары = Объект.Товары.Выгрузить();
ТЗТовары.Свернуть("Номенклатура,Характеристика,ВидОплаты","Количество,Сумма,СуммаНДС");
ТЗВидыЗапасов =  Объект.ВидыЗапасов;
Для каждого эл Из ТЗВидыЗапасов  Цикл

         Для каждого элТовар Из ТЗТовары Цикл
       
           Если эл.Номенклатура = элТовар.Номенклатура Тогда
              ПараметрыОтбора = Новый Структура;
              ПараметрыОтбора.Вставить("Номенклатура", эл.Номенклатура);
              НайденныеСтроки1 = ТЗВидыЗапасов.НайтиСтроки(ПараметрыОтбора);
              НайденныеСтроки2 = ТЗТовары.НайтиСтроки(ПараметрыОтбора);
              Если НайденныеСтроки1.Количество()< НайденныеСтроки2.Количество() Тогда
               Сообщить("Всего одна строка нужно делить!");  ///////////////////////////////думаю вот здесь брать ТЗ ТЗВидыЗапасов
удалять строку, далее циклом добавлять 2 строки
              Иначе
                 Если элТовар.Количество >=эл.Количество и  эл.ВидОплаты.Пустая() Тогда
                    эл.ВидОплаты = элТовар.ВидОплаты;
                    элТовар.Количество = элТовар.Количество - эл.Количество;
                 КонецЕсли;
                
              КонецЕсли;
           КонецЕсли;
       
        КонецЦикла;

КонецЦикла;   



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск