Программное создание записей журнала расчетов "зарплата"

1. Bagrat 09.09.11 13:18 Сейчас в теме
Дорогие друзья, помогите, пожалуйста!

Необходимо создать массово записи в журнале расчета "Зарплата".
Вот кусок кода для создания одной записи.

ЖР.Новая();
ЖР.УстановитьРеквизит("ДатаНачала", "01.09.2010");
ЖР.УстановитьРеквизит("ДатаОкончания", "30.09.2010");
ЖР.УстановитьРеквизит("ПериодДействия", ЖР.ТекущийПериод());
ЖР.УстановитьРеквизит("ПериодРегистрации", ЖР.ТекущийПериод());
ЖР.УстановитьРеквизит("Документ", Док);
ЖР.УстановитьРеквизит("РодительскийДокумент", Док);
ЖР.УстановитьРеквизит("Объект", СпрСотр.ТекущийЭлемент());
ЖР.УстановитьРеквизит("ВидРасч", ВидРасчета.ОплатаПоОкладу);
ЖР.УстановитьРеквизит("Рассчитана", 1);
ЖР.УстановитьРеквизит("Перерасчет", 0);
ЖР.УстановитьРеквизит("Сторно", 0);
ЖР.УстановитьРеквизит("Исправлена", 0);
ЖР.УстановитьРеквизит("Фиксирована", 0);
ЖР.УстановитьРеквизит("Дни", 25);
ЖР.УстановитьРеквизит("Часы", 200);
ЖР.УстановитьРеквизит("Результат", ДБФ.X010_09);
ЖР.Записать();

Проблема в том, что запись не создается, а возникают сообщения:
"Невозможно предустановить реквизит для записи: ПериодДействия"
"Невозможно предустановить реквизит для записи: ПериодРегистрации"

Если убрать строки 4) и 5) то опять же ничего не создается, а сообщение такое:
"Не все обязательные реквизиты установлены при вводе новой записи журнала расчетов"

Что я делаю не так?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. alexk-is 6546 09.09.11 14:29 Сейчас в теме
(1) Чему равны Док и СпрСотр.ТекущийЭлемент() ? Нужно проверить заполнение реквизитов.
2. xIvanx 09.09.11 13:48 Сейчас в теме
Какое значение в отладчике у ЖР.ТекущийПериод()?
Что происходит, если в период передать определенную дату?
4. Soveren888 09.09.11 14:48 Сейчас в теме
Прежде чем делать новую запись в ЖР необходимо установить период:
Жр.УстановитьТекущийПериод(ДатаПериода,0);

ДатаПериода, ну я лично, вычисляла как
ДатаПериода = ЖР.ПериодПоДате(Док.ДатаДок);

И затем уже тот код, что вы привели.
Не забудьте в конце вернуться в текущий период
5. Bagrat 09.09.11 15:51 Сейчас в теме
Какое значение в отладчике у ЖР.ТекущийПериод()?

ЖР.ТекущийПериод() = Сентябрь 2010 г.

Что происходит, если в период передать определенную дату?

Увы, та же ругань:
ЖР.УстановитьРеквизит("ПериодДействия", "01.09.2010");
{F:\1C ВНЕШНИЕ ОБРАБОТКИ\ЗАГРУЗКА_ЗАРПЛАТЫ.ERT(38)}: Невозможно предустановить реквизит для записи: ПериодДействия

Чему равны Док и СпрСотр.ТекущийЭлемент() ? Нужно проверить заполнение реквизитов.

Эти реквизиты заполняются корректно:
СпрСотр.ТекущийЭлемент() = Аргун Алхас Юрьевич
Док = Начисление заработной платы 999999 (30.09.10)

Сейчас попробую совет от Soveren888 и отпишусь
6. Bagrat 09.09.11 16:08 Сейчас в теме
Установил текущий период, проверил в отладчике
ЖР.ТекущийПериод() = Сентябрь 2010 г., то есть верно.

Буду проверять остальные реквизиты, хотя там константы ...
7. Bagrat 09.09.11 17:42 Сейчас в теме
В общем так, запись в журнале создалась. Проблема оказалась наибанальнейшая - при указании реквизитов-дат я использовал неправильные кавычки: вместо "01.09.2010" надо было написать '01.09.2010'

Но ... созданная запись помечена восклицательным знаком (!) - похоже на то, что ссылка на документ не прицепилась.
8. Bagrat 09.09.11 18:16 Сейчас в теме
И эту проблему тоже победил: оказывается, так неправильно
ЖР.УстановитьРеквизит("Документ", Док);

Правильно вот так:
ЖР.УстановитьРеквизит("Документ", Док.ТекущийДокумент());
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот