Имя: Пароль:
1C
1C 7.7
v7: Создание новых записей в Журнале расчетов
0 Web00001
 
16.09.11
07:08
Понадобилось обнулить, именно обнулить а не удалить записи в ЖР, так как некоторые из нужных записей имеют атрибут "фиксирована", удаляю и создаю новые, получился вот такой код:

Процедура Сформировать()
   Журнал = СоздатьОбъект("ЖурналРасчетов.Зарплата");
   Текущая = Дата1;
   
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ЗаписьЖР");
   Пока Текущая <= Дата2 Цикл
       Журнал.ВыбратьПериод(Текущая);
       Пока Журнал.ПолучитьЗапись() = 1 Цикл
           Если (Журнал.ВидРасч = ВидРасчета.НачальноеСальдоЗадолженность) или (Журнал.ВидРасч = ВидРасчета.НачальноеСальдоОкругления) или (Журнал.ВидРасч = ВидРасчета.НачальноеСальдоПереплатаНДФЛ) Тогда
               ТЗ.НоваяСтрока();
               ТЗ.ЗаписьЖР = Журнал.ТекущаяЗапись();
           КонецЕсли;
       КонецЦикла;    
       
       Текущая = ДобавитьМесяц(Текущая, 1);
   КонецЦикла;    
   
   ТЗ.ВыбратьСтроки();              
   ПериодБыл = Журнал.ТекущийПериод(); ПериодСейчас = "";
   Пока ТЗ.ПолучитьСтроку() = 1 Цикл
       Если Журнал.НайтиЗапись(ТЗ.ЗаписьЖР) = 1 Тогда
           _Документ = Журнал.Документ;
           _РодительскийДокумент = Журнал.РодительскийДокумент;
           _Объект = Журнал.Объект;
           _ВидРасч = Журнал.ВидРасч;
           _ДатаНачала = Журнал.ДатаНачала;
           _ДатаОкончания = Журнал.ДатаОкончания;
           _ПериодДействия = Журнал.ПериодДействия;
           _ПериодРегистрации = Журнал.ПериодРегистрации;
           _Сторно = Журнал.Сторно;
           _Рассчитана = Журнал.Рассчитана;
           _Исправлена = Журнал.Исправлена;
           _Фиксирована = Журнал.Фиксирована;
           _Перерасчет = Журнал.Перерасчет;
           _ПервичнаяЗапись = Журнал.ПервичнаяЗапись;
           _Дни = Журнал.Дни;
           _Часы = Журнал.Часы;
           _НомерСтрокиДокумента = Журнал.НомерСтрокиДокумента;
           _СтрокаИсправления = Журнал.СтрокаИсправления;
           Журнал.УдалитьЗапись();
           
           Журнал.Новая();
           Если ПериодСейчас <> _ПериодРегистрации Тогда
               ПериодСейчас = _ПериодРегистрации;
               Журнал.УстановитьТекущийПериод(ПериодСейчас,0);
           КонецЕсли;
           //Попытка
               Журнал.УстановитьРеквизит("Документ",_Документ);
           //Исключение
           //    Сообщить("Установка");
           //    Сообщить(""+_Объект+";"+_ПериодРегистрации);
           //    Возврат;
           //КонецПопытки;
           Журнал.УстановитьРеквизит("РодительскийДокумент", _РодительскийДокумент);
           Журнал.УстановитьРеквизит("Объект", _Объект);
           Журнал.УстановитьРеквизит("ВидРасч", _ВидРасч);
           Журнал.УстановитьРеквизит("ДатаНачала",_ДатаНачала);
           Журнал.УстановитьРеквизит("ДатаОкончания", _ДатаОкончания);
           //Журнал.УстановитьРеквизит("ПериодДействия", ПериодДействия);
           //Журнал.УстановитьРеквизит("ПериодРегистрации", ПериодРегистрации);
           Журнал.УстановитьРеквизит("Сторно", _Сторно);
           Журнал.УстановитьРеквизит("Рассчитана", _Рассчитана);
           Журнал.УстановитьРеквизит("Исправлена", _Исправлена);
           Журнал.УстановитьРеквизит("Фиксирована", _Фиксирована);
           Журнал.УстановитьРеквизит("Перерасчет", _Перерасчет);
           Журнал.УстановитьРеквизит("ПервичнаяЗапись", _ПервичнаяЗапись);
           Журнал.УстановитьРеквизит("Результат", 0);
           Журнал.УстановитьРеквизит("Дни", _Дни);
           Журнал.УстановитьРеквизит("Часы", _Часы);
           Журнал.УстановитьРеквизит("НомерСтрокиДокумента", _НомерСтрокиДокумента);
           Журнал.УстановитьРеквизит("СтрокаИсправления", _СтрокаИсправления);
           
           Попытка
               Журнал.Записать();
           Исключение;
               Сообщить("Запись");
               Возврат;
           КонецПопытки;    
       КонецЕсли;
   КонецЦикла;    
   Журнал.УстановитьТекущийПериод(ПериодБыл,0);
КонецПроцедуры

Но он матерится, что:
Журнал.УстановитьРеквизит("Документ",_Документ);
{C:\USERS\ччч\DESKTOP\1.ERT(52)}: Невозможно предустановить реквизит для записи: Документ
Журнал.УстановитьРеквизит("РодительскийДокумент", _РодительскийДокумент);
{C:\USERS\ччч\DESKTOP\1.ERT(58)}: Невозможно предустановить реквизит для записи: РодительскийДокумент
Журнал.УстановитьРеквизит("Объект", _Объект);
{C:\USERS\ччч\DESKTOP\1.ERT(59)}: Невозможно предустановить реквизит для записи: Объект
Журнал.УстановитьРеквизит("ВидРасч", _ВидРасч);
{C:\USERS\ччч\DESKTOP\1.ERT(60)}: Невозможно предустановить реквизит для записи: ВидРасч
Журнал.УстановитьРеквизит("ДатаНачала",_ДатаНачала);
{C:\USERS\ччч\DESKTOP\1.ERT(61)}: Невозможно предустановить реквизит для записи: ДатаНачала
Журнал.УстановитьРеквизит("ДатаОкончания", _ДатаОкончания);
{C:\USERS\ччч\DESKTOP\1.ERT(62)}: Невозможно предустановить реквизит для записи: ДатаОкончания
Журнал.УстановитьРеквизит("Перерасчет", _Перерасчет);
{C:\USERS\ччч\DESKTOP\1.ERT(69)}: Невозможно предустановить реквизит для записи: Перерасчет
Журнал.УстановитьРеквизит("ПервичнаяЗапись", _ПервичнаяЗапись);
{C:\USERS\ччч\DESKTOP\1.ERT(70)}: Невозможно предустановить реквизит для записи: ПервичнаяЗапись
Вопрос с чего бы это?
1 Web00001
 
16.09.11
07:11
Что интересно, если второй раз тыкнуть кнопочку, все работает
2 Web00001
 
16.09.11
07:58
и в отладчике когда проходит, когда нет, мистика какая то
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.