Имя: Пароль:
1C
1С v8
Не работает запись по регистрам.
0 Balabass
 
10.11.12
05:04
Наваял код. Сворачивает обороты по 70 счету на 1 субконто.

Вот код:

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

Почему не пишет - непойму. Где косяк?
1 Balabass
 
10.11.12
05:10
Причем, вчера все работало.
Я добавил состояние и счетчик. после этого перестало )))
Вернул все как было, и нифига. Не вижу причины.
2 Balabass
 
10.11.12
05:40
Ложная тревога. Все работает.
3 cw014
 
10.11.12
09:10
Приятно когда люди сами с собой разговаривают. Таким образом решаются половина проблем
4 Balabass
 
10.11.12
09:34
Апну тему. В 2 база работает, а в 3 нет.
При отладке в это месте:
Запись.СубконтоДт["РаботникиОрганизаций"]  = ФизЛицоСОТРУДНИКИ;
Запись.СубконтоДт["РаботникиОрганизаций"] - НЕОПРЕДЕЛЕНО, и не присваивается значение почему то.
5 Balabass
 
10.11.12
09:36
Ни*ера не пойму. Работает.
6 Wobland
 
10.11.12
09:37
(5) ты обращайся. поговори, и всё пройдёт
7 Balabass
 
10.11.12
09:37
Да я уже понял)))
8 Balabass
 
10.11.12
10:14
Решил. В 3 базе небыло субконто по счету в плане счетов.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший