Имя: Пароль:
1C
1С v8
Заполнение изменение табличной части документа
0 Нурбек Экипаж KZ
 
10.05.13
17:42
Всем доброго дня суток!
Есть проблема. Есть несколько документов инвентаризации нужно объединить в одну так чтобы перед заполнением сначала заполнил по остаткам на складу затем уже исходя из тех документов заполнил заполнил количество "факт" с поиском по номенклатуре,характеристики и серии номенклатуры.
Сделал следующее:
1.Создал реквизит в документе "ОписьОснование"
2.Затем событие при изменении
   запрос = Новый Запрос;
   
   запрос.УстановитьПараметр("ДокОсн", ОписьОснование);
   запрос.Текст ="ВЫБРАТЬ
                 |    ИнвентаризацияТоваровНаСкладеТовары.Ссылка,
                 |    ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмеренияМест,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Качество,
                 |    СУММА(ИнвентаризацияТоваровНаСкладеТовары.Количество) КАК Количество,
                 |    СУММА(ИнвентаризацияТоваровНаСкладеТовары.КоличествоМест) КАК КоличествоМест,
                 |    ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Коэффициент,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
                 |    СУММА(ИнвентаризацияТоваровНаСкладеТовары.Сумма) КАК Сумма,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СчетУчетаБУ,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ХарактеристикаНоменклатуры,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Цена,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЦенаВРознице,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СуммаРегл,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СерияНоменклатуры
                 |ИЗ
                 |    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
                 |ГДЕ
                 |    ИнвентаризацияТоваровНаСкладеТовары.Ссылка = &ДокОсн
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмеренияМест,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Качество,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Коэффициент,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ХарактеристикаНоменклатуры,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СчетУчетаБУ,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СерияНоменклатуры,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Цена,
                 |    ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет,
                 |    ИнвентаризацияТоваровНаСкладеТовары.Ссылка,
                 |    ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки,
                 |    ИнвентаризацияТоваровНаСкладеТовары.ЦенаВРознице,
                 |    ИнвентаризацияТоваровНаСкладеТовары.СуммаРегл";
   Выборка = Запрос.Выполнить().Выбрать();
   
   
   СтрокаИндекса = "Номенклатура,ХарактеристикаНоменклатуры";
   Если УчитыватьСерии Тогда
       СтрокаИндекса = СтрокаИндекса + ",СерияНоменклатуры";
   КонецЕсли;
   Если Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда    
       СтрокаИндекса = СтрокаИндекса + ",ЦенаВРознице";
   Иначе
       СтрокаИндекса = СтрокаИндекса + ",Качество";
   КонецЕсли;
   
   Пока Выборка.Следующий()Цикл
       НоваяСтрока = Товары.Добавить();
       
       СтруктураПоиска = Новый Структура;
       СтруктураПоиска.Вставить("Номенклатура",               Выборка.Номенклатура);
       СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", Выборка.ХарактеристикаНоменклатуры);
       Если УчитыватьСерии Тогда
           СтруктураПоиска.Вставить("СерияНоменклатуры",      Выборка.СерияНоменклатуры);
       КонецЕсли;
       
       МассивСтрок = Товары.НайтиСтроки(СтруктураПоиска);
       
       НоваяСтрока.Количество =  МассивСтрок.Количество;
       
       КонецЦикла;
1 Wobland
 
10.05.13
17:50
это хорошо или плохо?
2 Нурбек Экипаж KZ
 
14.05.13
09:51
Что не так при заполнении строки дублируется??
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший