Имя: Пароль:
1C
1С v8
Документы.ОперацияБух.СоздатьДокумент()
0 Popkorm
 
26.03.12
14:37
Не получается добавить в один документ всех контрагентов,записывается только одна строка:

      Док = Документы.ОперацияБух.СоздатьДокумент();
      ДатаЗаписи = ТекущаяДата();
      Док.Дата   = ДатаЗаписи;
      Док.Организация=Организация;
      Док.Записать();
     
      Для Каждого СтрМатериалы Из ТабЗагрузка Цикл
          Если СтрМатериалы.НашДол>0 Тогда
              СпрКонтрагент = Справочники.Контрагенты.НайтиПоНаименованию(СтрМатериалы.Контрагент);
              Если СпрКонтрагент=Неопределено Тогда
                  Сообщить("Не найдена "+СтрМатериалы.КодКонтрагента+" "+СтрМатериалы.Контрагент);
                  Продолжить;
              КонецЕсли;
              СпрДоговорКонт       = СпрКонтрагент.ОсновнойДоговорКонтрагента;
              НаборЗаписей         = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
              НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);
              Движение             = НаборЗаписей.Добавить();
              Движение.Регистратор = Док.Ссылка;
              Движение.Период      = ДатаЗаписи;            
              Если СтрМатериалы.НашДол>0 Тогда
                  Движение.СубконтоКт.Контрагенты = СпрКонтрагент;
                  Движение.СубконтоКт.Договоры = СпрДоговорКонт;
                  Движение.Сумма       = СтрМатериалы.НашДол;
                  Движение.СчетКт      = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
                  Движение.СчетДт      = ПланыСчетов.Хозрасчетный.Вспомогательный;
                  НаборЗаписей.Записать();
              КонецЕсли;
          КонецЕсли;    
      КонецЦикла;
       Форма = Док.ПолучитьФорму();
       Форма.Открыть();
1 Господин ПЖ
 
модератор
26.03.12
14:39
мдя...
2 Maxus43
 
26.03.12
14:39
НаборЗаписей         = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
              НаборЗаписей.Отбор.Регистратор.Установить(Док.Ссылка);

наф внутри цикла? выводи
3 Господин ПЖ
 
26.03.12
14:39
>записывается только одна строка:

сколько ей сказали столько и записывает
4 Господин ПЖ
 
26.03.12
14:40
я наверное тупой... накуа тут писать движуху через набор?
5 Maxus43
 
26.03.12
14:40
а может и ни одной ни записать. запись и создание набора - за пределами цикла
6 Maxus43
 
26.03.12
14:41
(4) хз, я б так же сделал, набор - кошерней ИМХО)
7 John83
 
26.03.12
14:42
навскидку
НаборЗаписей.Записать();
поставь после цикла
8 Маленький Вопросик
 
26.03.12
14:46
дарю:

Попытка
       
   НачатьТранзакцию();        
       
   ДокОперацияБух = Документы.ОперацияБух.СоздатьДокумент();
   ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ДокОперацияБух.ЭтотОбъект, ПараметрыСеанса.ТекущийПользователь);
   ДокОперацияБух.Дата = НачалоДня(КонецПериода)+60*60*23;
   ДокОперацияБух.Комментарий=ЭтаФорма.Комментарий;
   ДокОперацияБух.Содержание = "Закрытие счета 26 на 90.08.1 и 90.08.2 - " + Формат(НачалоДня(КонецПериода),"ДФ=ММММ")+ " "+Формат(НачалоДня(КонецПериода),"ДФ=гггг")+ " БЕЗ АРЕНДЫ";//Строка(Формат(Месяц(НачалоДня(КонецПериода)),"ДЛФ=DD"));

   
   ДокОперацияБух.СпособЗаполнения ="Вручную";

   
   ДокОперацияБух.СуммаОперации =  ОстатокДт26Счета;
   
   ДокОперацияБух.Записать();
   ДокОперацияБухСсылка = ДокОперацияБух.Ссылка;

   НЗХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   НЗХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияБухСсылка;
   
   Для Каждого СтрокаПроводки из КорреспонденцияСчета Цикл

       ЗХозрасчетный = НЗХозрасчетный.Добавить();
       ЗХозрасчетный.Период = НачалоДня(КонецПериода)+60*60*23;
       ЗХозрасчетный.Регистратор = ДокОперацияБухСсылка;
       ЗХозрасчетный.Организация = Организация;
       ЗХозрасчетный.Содержание  = "Списание общехозяйственных расходов на УСНО";
       ЗХозрасчетный.СчетДт = Счет90081;
       ЗХозрасчетный.СчетКт = Счет26;    
       БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "СтатьиЗатрат", СтрокаПроводки.СубконтоДт1);
       ЗХозрасчетный.Сумма = СтрокаПроводки.СуммаПроводки*ИспользованиеУСНО;

       ЗХозрасчетный = НЗХозрасчетный.Добавить();
       ЗХозрасчетный.Период = НачалоДня(КонецПериода)+60*60*23;
       ЗХозрасчетный.Регистратор = ДокОперацияБухСсылка;
       ЗХозрасчетный.Организация = Организация;
       ЗХозрасчетный.Содержание  = "Списание общехозяйственных расходов на ЕНВД";
       ЗХозрасчетный.СчетДт = Счет90082;
       ЗХозрасчетный.СчетКт = Счет26;    
       БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "СтатьиЗатрат", СтрокаПроводки.СубконтоДт1);
       ЗХозрасчетный.Сумма = СтрокаПроводки.СуммаПроводки*ИспользованиеЕНВД;
       
   КонецЦикла;        
       
//==================================================
   
     НЗХозрасчетный.Записать();
     ЗафиксироватьТранзакцию();        
     ЭтаФорма.ОстатокДт26Счета=0;
       
     Сообщить("Операция Бух.создана!");
       
   Исключение
       Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
       ОтменитьТранзакцию();    
   КонецПопытки;
9 Popkorm
 
26.03.12
14:52
(8)благодарствую
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.