helpf.pro
Регистрация
 +1 
Распечатать

Ввод записей в журнал расчетов

Добавление записи в журнал расчетов:
Метод Новая может быть вызван где угодно, в глобальном модуле, модуле обработок, документов и т.д.
Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнала расчетов методами Новая и Записать обязательно должны быть заполнены следующие реквизиты записи журнала: Объект, Документ, ВидРасч. Кроме того, проверяется корректность реквизитов ДатаНачала и ДатаОкончания. Если реквизиты ДатаНачала и ДатаОкончания не установлены явным образом, при записи они устанавли­ваются как начало и окончание текущего расчетного прериода, соответственно. Реквизит ПериодРегистрации заполняется текущим значением расчетного периода, установленным для журнала расчетов (см. метод УстановитьПериодРасчета). Если реквизит РодительскийДокумент не установлен явным образом, для него устанавливается то же значение, что и для реквизита Документ. Если реквизиты Рассчитана, Сторно, Перерасчет, Фиксирована не установлены, то запись вводится как простая нерассчитанная, нефиксированная запись.

Внимание! При вводе новых записей в журнал расчетов методами Новая и Записать записи вводятся «как есть». Система не выполняет правила перерасчетов, а также правила взаимного вытеснения видов расчета. Ввод произвольных записей журнала расчетов очень ответственная операция. При использовании этих методов следует внимательно следить за логиче­ской целостностью журнала расчетов
Код 1C v 7.x
 Перем Док;
Перем Сотр;
Перем Рез;
// документы
Док = СоздатьОбъект("Документ");
// ...позиционируется нужный документ
// сотрудники
Сотр = СоздатьОбъект("Справочник.Сотрудники");
// ...позиционируется нужный элемент справочника сотрудники
// результат...
Рез = 555;
ЖР = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖР.Новая();
ЖР.УстановитьПериод(ЖР.ПолучитьпериордПоДате(ТекДата));
ЖР.УстановитьРеквизит("Документ", Док.ТекущийДокумент());
ЖР.УстановитьРеквизит("Объект", Сотр.ТекущийЭлемент());
ЖР.УстановитьРеквизит("ВидРасч", Вид Расчета.ПоОкладу);
ЖР.УстановитьРеквизит("Рассчитана", 1);
ЖР.УстановитьРеквизит("Результат", Рез);
ЖР.Записать();



Добавить записи в журнал расчетов которые вводятся при проведении документов:

Методы ВвестиРасчет и ЗаписатьРасчет могут быть вызваны только в модулях документов,
вводящих расчеты. Вызвать эти методы в модулях иных объектов, например
в модуле формы списка ЖЗ или в модуле отчета (обработки), нельзя.


Код 1C v 7.x
 // Ссылка на журнал расчетов
ЖЗ = СоздатьОбъект("ЖурналРасчетов.Зарплата");
ЖЗ.УстановитьРеквизит("Рассчитана",1);
ЖЗ.ВвестиРасчет(ВыбрСотрудник, ВидРасчета.Премия, НачалоМесяца, КонецМесяца, ПремияСотруднику);

или
Код 1C v 7.x
 ЖЗ.ЗаписатьРасчет(ВыбрСотрудник, ВидРасчета.Премия, НачалоМесяца, КонецМесяца, ПремияСотруднику);


Отличие метода ЗаписатьРасчет заключается в том, что ввод вытесняющих расчетов приводит к вытеснению только тех расчетов, которые имеют меньший приоритет, а не меньший либо равный, как в случае с методом ВвестиРасчет. Это приводит, в частности, к тому, что за счет применения этого метода расчет не вытесняет «сам себя».

При записи невытесняющего расчета ввод новых записей также происходит «осмотрительно» — новые записи вводятся только в том случае, если в журнале расчетов нет точно такой же записи. Под точно такой же записью здесь подра­зумевается запись с таким же видом расчета, для того же объекта и с тем же периодом действия.

Вывод: Для обновления самовытесняющего расчета при его повторном вводе другим документом
вместо метода ЗаписатьРасчет используется метод ВвестиРасчет.
Разместил:   Версии: | 7.x |  Дата:   Прочитано: 19869
 +1 
Распечатать
Возможно, вас также заинтересует
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 52
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э
ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать архив. Создание объекта За
Библиотека кода: Сравнить две таблицы значений 0
//Сравнивает две таблицы значений // Функция ТаблицыЗначенийРавны(ТаблицаЗначений1, ТаблицаЗначений2) Экспорт Если ТипЗнч(ТаблицаЗначений1) Тип("ТаблицаЗначений") ИЛИ ТипЗнч(ТаблицаЗначений2) Тип("ТаблицаЗначений") Тогда Возв
Посмотреть все результаты поиска похожих
Комментарии
IKSparrow
25.05.2010 11:05Комментарий: 9
IKSparrow
Короче, мои кривые руки и невнимательность = такой эффект. Так что всё работает )
IKSparrow
24.05.2010 08:44Комментарий: 8
IKSparrow
Вот оказалось, что не всё так просто. Например, из ТЗ где находятся данные, которые надо записать в ЖР, часть этих данных записывается, а часть нет. В общем, мой ответ будет не очень скор *03 Возьму пару дней таймаута, чтобы въехать в ситуацию. )
E_Migachev
20.05.2010 16:32Комментарий: 7
E_Migachev
IKSparrow, в ЗИКе есть обработка Загрузка данных, посмотри как в ней сделано, у меня сейчас зика нет ) Напиши потом )
IKSparrow
20.05.2010 15:57Комментарий: 6
IKSparrow
Нашёл такую тему по этому поводу но тему это не раскрывает *08
IKSparrow
20.05.2010 15:56Комментарий: 5
IKSparrow
Неа, та же беда ) "Не все обязательные реквизиты установлены при вводе новой записи журнала расчетов"
E_Migachev
20.05.2010 15:30Комментарий: 4
E_Migachev
Реквизиты вроде все указаны,период устанавливается так:
Код 1C v 7.x
 ЖР.УстановитьТекущийПериод(ЖР.ТекущийПериод().ПрибавитьПериод(1),0);
//а дату начала и окончания определи так
ДатаНачала = ЖР.НачалоТекущегоПериода();
ДатаОкончания = ЖР.КонецТекущегоПериода();
ЖРЗарплата.УстановитьРеквизит("ДатаНачала",ДатаНачала); ЖРЗарплата.УстановитьРеквизит("ДатаОкончания",ДатаОкончания);
IKSparrow
20.05.2010 13:48Комментарий: 3
IKSparrow
Хм, фигня получается. Код такой:
Код 1C v 7.x
 

ЖРЗарплата.Новая();
ЖРЗарплата.УстановитьРеквизит("Объект",ТЗДР.СсылкаНаСотрудника);
ЖРЗарплата.УстановитьРеквизит("Документ",ВыбДокумент);
ЖРЗарплата.УстановитьРеквизит("РодительскийДокумент",ВыбДокумент);
ЖРЗарплата.УстановитьРеквизит("ВидРасч",ТЗДР.СсылкаНаВидРасчёта.Расчет);
ЖРЗарплата.УстановитьРеквизит("ДатаНачала",ДатаНачала); //ТЗДР.ПериодДействияНачало;
ЖРЗарплата.УстановитьРеквизит("ДатаОкончания",ДатаОкончания); //ТЗДР.ПериодДействияКонец;
//ЖРЗарплата.УстановитьРеквизит("ПериодДействия",ПериодДействия); //ТЗДР.ПериодДействия;
//ЖРЗарплата.УстановитьРеквизит("ПериодРегистрации",ПериодДействия); //ТЗДР.ПериодДействия;
ЖРЗарплата.УстановитьРеквизит("Сторно",ТЗДР.Сторно);
ЖРЗарплата.УстановитьРеквизит("Рассчитана",1);
ЖРЗарплата.УстановитьРеквизит("Исправлена",0);
ЖРЗарплата.УстановитьРеквизит("Фиксирована",0);
ЖРЗарплата.УстановитьРеквизит("Перерасчет",0);
ЖРЗарплата.УстановитьРеквизит("Результат",ТЗДР.Результат);
ЖРЗарплата.Записать();
КонецЕсли;




Следует сообщение об ошибке, что не все обязательные реквизиты заполнены. Пытаюсь заполнить ПериодДействия и ПериодРегистрации, появляется ошибка, что нельзя эти реквизиты устанавливать вручную. Код выполняется во внешней обработке. Мне собственно там и нужно.
E_Migachev
20.05.2010 10:13Комментарий: 2
E_Migachev
IKSparrow, более подробно расписал. По сути методом Новая можно вводить записи откуда захочешь, а ЗаписатьРасчет и ВвестиРасчет только из обработки проведения документа!
IKSparrow
20.05.2010 08:22Комментарий: 1
IKSparrow
Что-то я запутался с этими журналами расчётов. А что тогда за метод ЖурналРасчетов.Новая()? Для чего он? По хелпу - это ввод новой записи в ЖР. Но как им пользоваться?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.