7.7 Расчет регистра

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Allizar, 29 сен 2008.

  1. TopicStarter Overlay
    Allizar
    Offline

    Allizar Опытный в 1С

    Регистрация:
    24 сен 2006
    Сообщения:
    413
    Симпатии:
    0
    Баллы:
    26
    Делаю небольшую доработку к ТиС. Перед проведением документа ПоступлениеТМЦ должна выводится таблица снекоторыми данными из регистров Заказы и ЗаказыЗаявки. Проблема в том, что в таблицу попадают только данные по регистру Заказы. Подозреваю, что я неверно их рассчитал, но ошибку свою обнаружить не могу. Может, уважаемые форумчане что-нибудь посоветуют.
    Вот кусок кода:

    Код:
    ВремРегистры     = СоздатьОбъект("Регистры");
    РегЗаказы	     = ВремРегистры.Заказы;
    РегЗаказыЗаявки = ВремРегистры.ЗаказыЗаявки; 
    ТаблицаДокумента=глПодготовитьТаблицуДокумента(Контекст);
    
    ФирмаДляОстатковТМЦ = глФирмаДляОстатковТМЦ(Фирма);
    РегЗаказы.УстановитьЗначениеФильтра("Фирма",	            ФирмаДляОстатковТМЦ , 2);
    РегЗаказы.УстановитьЗначениеФильтра("ДоговорПоставщика",	Договор             , 1);
    
    ВидОсн = ДокОснование.Вид();
    Если (ДокОснование.Выбран()=1) и (ВидОсн = "ЗаказПоставщику") Тогда
    // если выбран заказ, то гасим только его !!!
    РегЗаказы.УстановитьЗначениеФильтра("ЗаказПоставщику",	ДокОснование,1);
    КонецЕсли;
    
    
    Если ИтогиАктуальны() = 0 Тогда
    
    СписокТМЦ = СоздатьОбъект("СписокЗначений");
    ТаблицаДокумента.Выгрузить(СписокТМЦ,,,"Номенклатура");
    
    РегЗаказы.      УстановитьЗначениеФильтра("Номенклатура", СписокТМЦ, 2);
    РегЗаказыЗаявки.УстановитьЗначениеФильтра("Номенклатура", СписокТМЦ, 2);
    РегЗаказы.      ВременныйРасчет();      
    РегЗаказыЗаявки.ВременныйРасчет(); 
    ВремРегистры.Актуальность(1);
    ВремРегистры.РассчитатьРегистрыНа(ТекущийДокумент());  
    КонецЕсли;
    
    
    
    ТаблЗаказы=СоздатьОбъект("ТаблицаЗначений");
    ТаблЗаказыЗаявки=СоздатьОбъект("ТаблицаЗначений");
    
    
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица(КаталогИб()+"\ExtForms\PrnForms\ТаблКонтроляПроведения.mxl"); 
    Таб.ВывестиСекцию("Шапка");
    
    ТаблицаДокумента.ВыбратьСтроки();
    Пока ТаблицаДокумента.ПолучитьСтроку()=1 Цикл
    ТекНоменк=ТаблицаДокумента.Номенклатура;
    
    РегЗаказыЗаявки.УстановитьЗначениеФильтра("Номенклатура",	ТекНоменк,1);
    РегЗаказы.      УстановитьЗначениеФильтра("Номенклатура",	ТекНоменк,1);
    
    РегЗаказы.ВыгрузитьИтоги(ТаблЗаказы,1,1);
    
    ПогаситьКол = ТаблицаДокумента.Количество;
    ПечТовар=ТекНоменк;
    
    ТаблЗаказы.ВыбратьСтроки();
    Пока (ТаблЗаказы.ПолучитьСтроку()=1) 
    и    (ПогаситьКол>0) 
    Цикл
    ОстЗакКПрих = ТаблЗаказы.КоличествоПриход;
    ОстЗакСПрих = ТаблЗаказы.СтоимостьПриход;
    
    ПогЗакКПрих = Макс(Мин(ОстЗакКПрих, ПогаситьКол),0);
    ПогЗакСПрих = ?(ОстЗакКПрих = 0, 0, ОстЗакСПрих * ПогЗакКПрих / ОстЗакКПрих); 
    
    Если ПогЗакКПрих <> 0 Тогда
    ПечДок=ТаблЗаказы.ЗаказПоставщику;
    ПечСуммаДок="";
    ПечКол= ОстЗакКПрих;
    ПечСумма=ОстЗакСПрих;
    
    ПогаситьКол = ПогаситьКол - ПогЗакКПрих;
    
    // посмотрим, а не числилась ли привязка к заказу поставщика по заявке?
    РегЗаказыЗаявки.УстановитьЗначениеФильтра("ЗаказПоставщику",ТаблЗаказы.ЗаказПоставщику,1);
    РегЗаказыЗаявки.ВыгрузитьИтоги(ТаблЗаказыЗаявки,1,1);
    ОстПогКПоЗак = ПогЗакКПрих; 
    
    Пока (ТаблЗаказыЗаявки.ПолучитьСтроку()=1)
    и    (ОстПогКПоЗак <> 0)
    Цикл                                       
    ОстПоЗаявк  = ТаблЗаказыЗаявки.Количество;
    ПогКПоЗаявк = Макс(Мин(ОстПогКПоЗак, ОстПоЗаявк),0);
    Если ПогКПоЗаявк <> 0 Тогда
    ПечКолС=ПогКПоЗаявк;
    ОстПогКПоЗак = ОстПогКПоЗак - ПогКПоЗаявк;
    КонецЕсли;
    Таб.ВывестиСекцию("Строка");
    КонецЦикла;
    Таб.ВывестиСекцию("СтрокаДок");
    КонецЕсли;
    
    КонецЦикла;
    
    
    КонецЦикла; 
    
    
  2. TopicStarter Overlay
    Allizar
    Offline

    Allizar Опытный в 1С

    Регистрация:
    24 сен 2006
    Сообщения:
    413
    Симпатии:
    0
    Баллы:
    26
    Всем спасибо. Забыл "ТаблЗаказыЗаявки.ВыбратьСтроки()"

Поделиться этой страницей