Имя: Пароль:
1C
1С v8
Как заполнить ТЧ Реализации по остаткам номенклатуры
,
0 almaz102
 
07.09.17
18:46
Помогите пожалуйста, не получается заполнить ТЧ. Мне нужно по остаткам номенклатуры определенного склада заполнить ТЧ документа реализация. Что я делаю ни так?

&НаСервере
    Процедура СформироватьПоОстаткамНаСервере(ДанныеФормы)
        
        Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.РеализацияТоваровУслуг"));
        Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
        Док.Контрагент = Объект.Контрагент;
        
        Док.ДоговорКонтрагента = НайтиДоговор(Объект.Контрагент);
        Док.Организация = Объект.Организация;
        Док.Склад = Объект.Склад;
        Док.Дата = Объект.ДатаРеализации;
        
        Док.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Товары;
                Док.БанковскийСчетОрганизации = Объект.Организация.ОсновнойБанковскийСчет;
                Док.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
                Док.СчетУчетаРасчетовПоАвансам =  ПланыСчетов.Хозрасчетный.РасчетыПоАвансамПолученным;
                Док.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
                Док.ВалютаДокумента = Константы.ВалютаРегламентированногоУчета.Получить();
                Док.КурсВзаиморасчетов = 1;
                Док.КратностьВзаиморасчетов = 1;

        
        Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
                       |    ХозрасчетныйОстатки.КоличествоОстатокДт КАК Количество
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, , , ) КАК ХозрасчетныйОстатки
                       |ГДЕ
                       |    ХозрасчетныйОстатки.Субконто2 = &Субконто2
                       |    И ХозрасчетныйОстатки.Счет = &Счет
                       |    И ХозрасчетныйОстатки.Организация = &Организация";
        
        Запрос.УстановитьПараметр("Дата", Объект.ДатаРеализации);
        Запрос.УстановитьПараметр("Субконто2", Объект.Склад);
        Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ТоварыНаСкладах);
        Запрос.УстановитьПараметр("Организация", Объект.Организация);
        
        Выборка = Запрос.Выполнить().Выбрать();
        
            Пока Выборка.Следующий() Цикл
        
                                
                //Для Каждого Стр ИЗ Объект.СсылкаНаОбъект.Товары ЦИКЛ
                    
                    НоваяСтрокаТЧ = ДанныеФормы.Товары.Добавить();
                    НоваяСтрокаТЧ.Номенклатура = Выборка.Номенклатура;
                    НоваяСтрокаТЧ.Количество = Выборка.Количество;
                    //НоваяСтрокаТЧ.Цена = Стр.Цена;
                    //НоваяСтрокаТЧ.Сумма = Стр.Сумма;
                    //НоваяСтрокаТЧ.СуммаНДС = Стр.СуммаНДС;
                    //НоваяСтрокаТЧ.СчетУчетаНДСПоРеализации =ПланыСчетов.Хозрасчетный.НДС;
                    //НоваяСтрокаТЧ.СтавкаНДС = Стр.СтавкаНДС;
                    //НоваяСтрокаТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
                    //НоваяСтрокаТЧ.СчетДоходов = ПланыСчетов.Хозрасчетный.ВыручкаНеЕНВД;
                    //НоваяСтрокаТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД;
                    //
                    
                            
                КонецЦикла;
                
                Док.СуммаДокумента = Объект.СсылкаНаОбъект.СуммаДокумента;
                Док.СуммаВключаетНДС = Истина;
                //РеализацияТоваровУслугФормы.ДоговорКонтрагентаПриИзменении(ФормаДок);
                
            
                ЗначениеВДанныеФормы(Док,ДанныеФормы);

        
    КонецПроцедуры

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

    КонецПроцедуры
1 h-sp
 
07.09.17
19:02
тут фигня какая-то

Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.РеализацияТоваровУслуг"));
        Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
      

переменная Док два раза присваивается
2 AlvlSpb
 
07.09.17
19:17
(0) Мне кажется, вы усложняете задачу. Посмотрите пример http://1c-programmer-blog.ru/programmirovanie/kak-otkryt-formu-s-zapolneniem.html
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.