Имя: Пароль:
1C
 
Создание проводок программно
Ø
0 Moran
 
17.08.06
12:48
Возникла необходимость внешней загрузки проводок в базу на основе экселя.
Меня, как чайника, удивило отсутствие проводок и операций как объектов метаданных. То что бух. операция теперь документ - ладно. Но как к ней прилепить проводки???
1 android
 
17.08.06
12:53
(0) Подход неверный изначально.
Вопрос №1: что хотите получить в результате? Какую отчетность?
2 Moran
 
17.08.06
12:59
В результате мне нужно получить набор проводок по контрагентам. Т.е. создать Бух. операцию, в которой и будут сидеть эти проводки. Проблема в том, что я не могу врубиться, как в принципе эти проводки создаются. Там есть какойто хозрасчётный регистр бухгалтерии. Но как его использовать?
3 android
 
17.08.06
13:13
(2) С проводками что будете делать?
4 Moran
 
17.08.06
13:16
Я с ними ничё делать не буду. Мне только процедуру их создания в обработке написать.
5 Фауст
 
17.08.06
13:21
Создаешь докмент бух. операция, Создаешь набор записей регистра бухгалтерии, создаешь в наборе записи - они же проводки, регистратором для каждой записи устанавливаешь бух. справку, записываешь набор.
6 Moran
 
17.08.06
13:48
5:
//********Вот такая вот у миня процедура:
Процедура ЗагрузкаВБазу(Элемент)
  СпрОрг=Справочники.Организации.НайтиПоКоду("CB000001");
  Док=Документы.ОперацияБух.СоздатьДокумент();
  Док.Дата=ДТ;
  Док.Комментарий="Загрузка из файла";
  Док.Организация=СпрОрг;
  Док.Записать();
  Проводки=Регистрыбухгалтерии.Хозрасчетный;
  Проводки.ВыбратьПоРегистратору(Док);
  Наборпроводок=Проводки.СоздатьНаборЗаписей();
  Для Строка=2 по КонечнаяСтрока Цикл
    Если <Условие> тогда
      ПланСч=ПланыСчетов.Хозрасчетный;
      Проводка=НаборПроводок.Добавить();
      
      Проводка.СчетДт=ПланСч.НайтиПоКоду("76.02");
      Если Не Проводка.СчетДт.Пустая() Тогда
        ВидыСубконто = Проводка.СчетДт.ВидыСубконто;
        Проводка.СубконтоДт[1] = СубкДт;
      КонецЕсли;
      Проводка.СчетКт=ПланСч.НайтиПоКоду("76.02");
      Проводка.Регистратор=Док;
      
    КонецЕсли;
  КонецЦикла;
  НаборПроводок.Записать();
КонецПроцедуры
//****Вот такая вот выскакивает ошибка:
{Форма.Форма(516)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет))
  НаборПроводок.Записать();
по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет))
7 Сисой
 
17.08.06
13:57
(0) А ты в курсе, что в типовых на 8.0 НЕЛЬЗЯ писать только проводки по контрагентам, т.к. нужно еще двигать кучу регистров (имеется в виду в первую очередь фискальный учет).
(1) пожалуй что прав.
8 Moran
 
17.08.06
14:04
7:
Регистры регистрами, но сейчас мне нужно всего-навсего понять как эти создать проводки.
9 Северянин
 
17.08.06
14:07
(8) Заполни документ БухгалтерскаяОперация и проведи его
10 newreactive
 
17.08.06
14:09
Наверное, лучше из внешнего файла программно заполнять Документ Бухгалтерская операция. В его реквизитах есть проводки. После его проведения они и будут созданы. Но, если даже этот документ создашь, из-за отсутствия движений в регистрах будет не правильная отчетность.
11 newreactive
 
17.08.06
14:11
У меня бухи Бухгалтерской операцией вручную работали, баланс получился правильный, а в другой отчетности произвольно не верные данные.
12 Северянин
 
17.08.06
14:12
+ 9 В УПП это документ "БухОперация". Могу кинуть внешнюю обработку по загрузки начального сальдо расходов будущих периодов из скалы. Правда там из текстового файла, но тебе ведь "только посмотреь" ;-)
13 ASDF
 
17.08.06
14:15
Всего то надо НаборПроводок.Отбор.Регистратор.Установить(Док)
15 Moran
 
17.08.06
14:30
13:
Не втыкается никуда.
16 ASDF
 
17.08.06
14:32
(15) После Наборпроводок=Проводки.СоздатьНаборЗаписей();
А ВыбратьПоРегистратору() нафиг не надо
17 Moran
 
17.08.06
14:35
16:
Туда я тож пихал. Без результата.
:(((
18 Bolik
 
17.08.06
14:38
Проводка.Регистратор=Док.Ссылка - попробуй
19 Северянин
 
17.08.06
14:40
(14) Лови...
20 zyto
 
17.08.06
14:54
А если так:
...
Док.Записать();
Проводки = Док.Движения();
Для По Цикл
НоваяПроводка = Проводки.ТВОЙРЕГИСТРБУХГАЛТЕРИИ.Добавить();
НоваяПроводка.... = .....
....
КонецЦикла;
Движения.Записать();
Док.Записать();
21 Moran
 
17.08.06
14:57
16,18:
Спасибо огромное!!!! Палучилось!!!!
19:
Тоже спасибо! Думаю пригодится!
:)))
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс