Имя: Пароль:
1C
1С v8
Создание операции, проблема с регистратором.
0 Menjoy
 
16.08.11
17:37
Добрый день.

Есть такой код, который создает операцию и делает проводку:

   Операция = Документы.ОперацияБух.СоздатьДокумент();
   Операция.Организация = Справочники.Организации.НайтиПоКоду("000000001");
   Операция.Дата = ТекущаяДата();
   Операция.СуммаОперации = Сумма;
   
   НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Операция.Ссылка);
   
   НоваяПроводка = НаборЗаписей.Добавить();
   НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("92.1");
   НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41");
   НаборЗаписей.Записать();
   Операция.Записать();


Сегодня начал разбираться как это делает, смотрел по форумам. Код черновой, чтобы написать рабочий вариант.

Выбивает вот такую ошибку:


{Форма.Форма.Форма(370)}: Ошибка при вызове метода контекста (Записать)
   НаборЗаписей.Записать();
по причине:

по причине:
Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет))



Т.е. строчка кода:

НаборЗаписей.Отбор.Регистратор.Установить(Операция.Ссылка);

Не работает.
Подскажите, как решить проблему.
1 Господин ПЖ
 
16.08.11
17:40
по яйкам с ноги... в школе так учили - записывать наборы не записав регистратор?
2 Menjoy
 
16.08.11
17:42
(1) просьба помочь поправить ошибку, пока что не могу сообразить.
3 Aprobator
 
16.08.11
17:43
документ запиши сначала, сказали же уже. Какое слово не ясно то?
4 Господин ПЖ
 
16.08.11
17:43
Операция.СуммаОперации = Сумма;
--->Операция.Записать(); //сюда строку подними
5 Aprobator
 
16.08.11
17:44
а не в конце его запись лепи.
6 Menjoy
 
16.08.11
17:47
Спасибо.
Проблема решена.

Теперь буду решать следующую:


{Форма.Форма.Форма(370)}: Ошибка при вызове метода контекста (Записать)
   НаборЗаписей.Записать();
по причине:

по причине:
Запись не верна! Период не может быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет); Номер строки: 1)
7 palpetrovich
 
16.08.11
17:48
(6) нуууу????
8 Aprobator
 
16.08.11
17:48
ужас. Это тоже переводить надо?
9 lubja
 
16.08.11
17:48
(6) ну? ключевое слово ПЕРИОД)))
10 Menjoy
 
16.08.11
17:49
Нет-нет :)
Я просто написал, скажем так.
Конечно же уже решено:


НоваяПроводка.Период = Операция.Дата;
11 lubja
 
16.08.11
17:50
а еще у тя не указаны субконто и, кажись, количество...
12 salvator
 
16.08.11
17:50
+(11) и организация...
13 palpetrovich
 
16.08.11
17:51
а, я понял, автор "Период" это "Перыяд" ;)
14 Menjoy
 
16.08.11
17:53
(11) Про субконто я пока еще вовсе ничего не знаю, нужно узнавать в бухгалтерии и читать интернеты. Мне даже понятие не знакомо.
(12) Организация указана.
(13) Ценю юмор конечно, но я только учусь программированию и 1С в частности :) Форумы, интернет, книги.
15 Aprobator
 
16.08.11
17:55
(14) сначала книги, интернет и форум потом.
16 lubja
 
16.08.11
17:57
(15) особенно, форум в последнюю очередь! тебя тут сначала хорошо заприкалывают, а потом уж помогут)
17 palpetrovich
 
16.08.11
17:57
(14) может все-таки лучше в модуле документа формировать проводки? как-то кошернее выглядеть будет, да и помошники (конструкторы) тебе помогут... :)
18 Menjoy
 
16.08.11
18:40
(16) я не особо обидчивый, да и тут действительно простая ошибка была ;)

(17) конструкторы и так помогают (если разговор о "выпадающих менюшках" с функциями).
это пока черновик, возможно потом процедуру в модуль документа перепишу, и на кнопку повешу. спасибо.
19 Aprobator
 
17.08.11
10:03
(18) вот только не всегда во всех выпадающих менюшках все выпадает. Есть такая специфика. Так что читай внимательно доки. А обидчивость тут не при чем. Просто начинать с книги эффективнее, поскольку сэкономишь кучу времени.