Как сбросить флаг ручной правки расчетов выбранного сотрудника, кроме указанных расчетов В примере обнуляется флаг ручной правки расчетов выбранного сотрудника, кроме
расчетов с ВР ПремияСум, для которых, наоборот, вносится ручная правка результата.
Новая величина премии равна 1250 руб. Попутно выполняется расчет записей,
с которых снимется флаг ручной правки.
Код 1C v 7.x сСотр_2 = СоздатьОбъект( "Справочник.Сотрудники" ) ;
если сСотр_2. Выбрать( "Выберите сотрудника" , "ФормаДляВыбора" ) = 0 тогда
Предупреждение( "Сотрудник не выбран." ) ;
возврат ;
конецЕсли ;
жз = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
жз. ВыбратьПериодПоОбъекту( сСотр_2. ТекущийЭлемент( ) ) ;
ВР = ВидРасчета. ПремияСум;
пока жз. ПолучитьЗапись( ) = 1 цикл
если ( жз. Исправлена = 1 ) и ( жз. ВидРасч = ВР) тогда
жз. ОтменитьИсправление( ) ;
жз. Рассчитать( ) ;
конецЕсли ;
если жз. ВидРасч = ВР тогда
жз. Исправить( 1250.0 ) ;
конецЕсли ;
конецЦикла ;
Предупреждение( "Готово." ) ;
конецПроцедуры
Категория:
Журналы расчетов Как удалить все расчеты, относящиеся к выбранному Документу Код 1C v 7.x док = СоздатьОбъект( "Документ.Премия" ) ;
если док. Выбрать( "Выберите документ" ) = 0 тогда
Предупреждение( "Документ не выбран." ) ;
возврат ;
конецЕсли ;
жз = СоздатьОбъект( "ЖурналРасчетов.Зарплата_2" ) ;
жз. ВыбратьЗаписиПоДокументу( док. ТекущийДокумент( ) ) ;
пока жз. ПолучитьЗапись( ) = 1 цикл
жз. УдалитьЗапись( ) ;
конецЦикла ;
док. Удалить( 0 ) ;
Категория:
Журналы расчетов Как вывести все зарегистрированные в текущем периоде расчеты (объект, ВР и результат) Сотрудников Код 1C v 7.x сСотр_2 = СоздатьОбъект( "Справочник.Сотрудники" ) ;
если сСотр_2. НайтиПоНаименованию( "02 Цех" , 0 ) = 0 тогда
Предупреждение( "Второй цех не найден." ) ;
возврат ;
конецЕсли ;
жз = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
пер = жз. ТекущийПериод( ) ;
подр = сСотр_2. ТекущийЭлемент( ) ;
жз. ВыбратьПоЗначению( "Родитель" , подр, пер, пер) ;
пока жз. ПолучитьЗапись( ) = 1 цикл
Сообщить( "" + жз. Объект + СимволТабуляции + жз. ВидРасч +
СимволТабуляции + жз. Результат) ;
конецЦикла ;
Категория:
Журналы расчетов Как вывести все расчеты, относящиеся к выбранному Документу Код 1C v 7.x док = СоздатьОбъект( "Документ.Премия" ) ;
если док. Выбрать( "Выберите документ" ) = 0 тогда
Предупреждение( "Документ не выбран." ) ;
возврат ;
конецЕсли ;
жз = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
жз. ВыбратьЗаписиПоДокументу( док. ТекущийДокумент( ) ) ;
пока жз. ПолучитьЗапись( ) = 1 цикл
Сообщить( "" + жз. Объект + СимволТабуляции + жз. ВидРасч + СимволТабуляции + жз. Результат) ;
КонецЦикла ;
Категория:
Журналы расчетов Как вывести все расчеты, относящиеся к выбранному Сотруднику Код 1C v 7.x сСотр_2 = СоздатьОбъект( "Справочник.Сотрудники" ) ;
если сСотр_2. Выбрать( "Выберите сотрудника" , "ФормаСписка" ) = 0 тогда
Предупреждение( "Сотрудник не выбран." ) ;
возврат ;
конецЕсли ;
жз = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
жз. ВыбратьЗаписиПоОбъекту( сСотр_2. ТекущийЭлемент( ) ) ;
пока жз. ПолучитьЗапись( ) = 1 цикл
Сообщить( "" + жз. Объект + СимволТабуляции + жз. ВидРасч +
Символ Табуляции + жз. Результат) ;
конецЦикла ;
Категория:
Журналы расчетов Вхождение вида расчета в группу Посчитаем все начисления текущего сотрудника за январь:
Код 1C v 7.x
ВсегоНачислено = 0 ;
ЖЗ. ВыбратьЗаписиПоОбъекту ( ТекСотр, ДатаНач, ДатаКон) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
Если ЖЗ. ВидРасч. ВходитВГруппу( ГруппаРасчетов. ВсеНачисления) = 1 Тогда
ВсегоНачислено = ВсегоНачислено + ЖЗ. Результат;
КонецЕсли ;
КонецЦикла ;
ВсегоНачислено = 0 ;
ЖЗ. ВыбратьЗаписиПоОбъекту ( ТекСотр, ДатаНач, ДатаКон) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
Если ГруппаРасчетов. ВсеНачисления. СодержитВидРасчета( ЖЗ. ВидРасч) = 1 Тогда
ВсегоНачислено = ВсегоНачислено + ЖЗ. Результат;
КонецЕсли ;
КонецЦикла ;
Категория:
Виды расчетов Как определить сумму "по окладу" текущего сотрудника Код 1C v 7.x ПоОкладу = 0 ;
ЖЗ = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
ДатаНач = '01.01 . 2002 ';
ЖЗ. ВыбратьПериодПоОбъекту( ТекСотр, ДатаНач) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
Если ЖЗ. ВидРасч = ВидРасчета. ПоОкладу Тогда
ПоОкладу = ПоОкладу + ЖЗ. Результат;
КонецЕсли ;
КонецЦикла ;
Категория:
Виды расчетов Расчет начислений по сотруднику, подразделени, документу Код 1C v 7.x
ВсегоНачислено = 0 ;
ЖЗ. ВыбратьЗаписиПоОбъекту ( ТекСотр, ДатаНач, ДатаКон) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
Если ЖЗ. ВидРасч. ВходитВГруппу( ГруппаРасчетов. ВсеНачисления) = 1 Тогда
ВсегоНачислено = ВсегоНачислено + ЖЗ. Результат;
КонецЕсли ;
КонецЦикла ;
ЖЗ. ВыбратьПериодПоОбъекту ( ТекСотр, ДатаНач) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
ЖЗ. Рассчитать( ) ;
КонецЦикла ;
ЖЗ. ВыбратьЗаписиПоДокументу ( ВыбрДокумент) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
ЖЗ. Рассчитать( ) ;
КонецЦикла ;
ТекПер = ЖЗ. ТекущийПериод( ) ;
ЖЗ. ВыбратьПоЗначению ( "Подразделение" , ВыбрПодразделение, ТекПер, ТекПер) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
ЖЗ. Рассчитать( ) ;
КонецЦикла ;
Категория:
Журналы расчетов Выгрузка используемых видов расчетов в таблицу значений Код 1C v 7.x ТЗВидыРасчётов = Новый ТаблицаЗначений;
ТЗВидыРасчётов. Колонки. Добавить( "ВидРасчёта" ) ;
ЖРЗарплата = v7. CreateObject( "ЖурналРасчетов.Зарплата" ) ;
ЖРЗарплата. ВыбратьЗаписи( НачДата, КонДата) ;
Пока ЖРЗарплата. ПолучитьЗапись( ) = 1 Цикл
СтрВидыРасчётов = ТЗВидыРасчётов. Добавить( ) ;
СтрВидыРасчётов. ВидРасчёта = ЖРЗарплата. ВидРасч. Наименование;
КонецЦикла ;
ЖРДополнительный = v7. CreateObject( "ЖурналРасчетов.Дополнительный" ) ;
ЖРДополнительный. ВыбратьЗаписи( НачДата, КонДата) ;
Пока ЖРДополнительный. ПолучитьЗапись( ) = 1 Цикл
СтрВидыРасчётов = ТЗВидыРасчётов. Добавить( ) ;
СтрВидыРасчётов. ВидРасчёта = ЖРДополнительный. ВидРасч. Наименование;
КонецЦикла ;
ЖРНалогиСФОТ = v7. CreateObject( "ЖурналРасчетов.НалогиСФОТ" ) ;
ЖРНалогиСФОТ. ВыбратьЗаписи( НачДата, КонДата) ;
Пока ЖРНалогиСФОТ. ПолучитьЗапись( ) = 1 Цикл
СтрВидыРасчётов = ТЗВидыРасчётов. Добавить( ) ;
СтрВидыРасчётов. ВидРасчёта = ЖРНалогиСФОТ. ВидРасч. Наименование;
КонецЦикла ;
ЖРСтраховыеВзносы = v7. CreateObject( "ЖурналРасчетов.СтраховыеВзносы" ) ;
ЖРСтраховыеВзносы. ВыбратьЗаписи( НачДата, КонДата) ;
Пока ЖРСтраховыеВзносы. ПолучитьЗапись( ) = 1 Цикл
СтрВидыРасчётов = ТЗВидыРасчётов. Добавить( ) ;
СтрВидыРасчётов. ВидРасчёта = ЖРСтраховыеВзносы. ВидРасч. Наименование;
КонецЦикла ;
Написал
IKSparrow Категория:
Виды расчетов Перебор записей журнала расчетов Например, организуем перебор записей с периодом действия в январе.
Код 1C v 7.x ЖЗ = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
ДатаНач = '01.01 . 2002 ';
ДатаКон = '31.01 . 2002 ';
ЖЗ. ВыбратьЗаписи( ДатаНач, ДатаКон) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
КонецЦикла ;
А теперь организуем перебор записей, введенных в январе.
Код 1C v 7.x ЖЗ = СоздатьОбъект( "ЖурналРасчетов.Зарплата" ) ;
ДатаНач = '01.01 . 2002 ';
ЖЗ. ВыбратьПериод( ДатаНач) ;
Пока ЖЗ. ПолучитьЗапись( ) = 1 Цикл
КонецЦикла ;
Отличие методов
ВыбратьЗаписи и ВыбратьПериод проявляется, если запись введена в другом месяце, но период ее действия лежит в январе. Например, в феврале сотруднику выдают премию за январь. Тогда запись будет введена в феврале (период регистрации), но период ее действия - январь. В первый цикл она попадет, а во второй нет.
Категория:
Журналы расчетов Работа с журналом расчетов в 1С7.7 из 1С 8.1 через Com соединение Недавно делал перенос справочников и документов из 1С 7.7 "Зарплата и кадры" в 1С 8.1 "Управление торговым предприятием" через Com соединение. Во время переноса столкнулся с некоторыми проблемами. Одна из них - это при выполнении запроса очень важно правильно указать синтаксис передаваемых значений, особенно даты, иначе запрос не будет выполняться. Как правильно написать запрос? Смотрим:
Код 1C v 8.х
База77 = Новый COMObject( "V77.Application" ) ;
Открыта = База77 . Initialize( База77 . RMTrade, "/d" + ПутьКБазе77 , "NO_SPLASH_SHOW" ) ;
Если Открыта Тогда
Предупреждение( "Ошибка открытия информационной базы!" ) ;
Иначе
Сообщить( "БАЗА ОТКРЫТА УСПЕШНО!" ) ;
Конецесли ;
ДатаПериода = ТекущаяДата( ) ;
Зрп = База77 . CreateObject( "ЖурналРасчетов.Зарплата" ) ;
НТП = Формат( Зрп. НачалоПериодаПоДате( ДатаПериода) , "ДЛФ=Д" ) ;
КТП = Формат( Зрп. КонецПериодаПоДате( ДатаПериода) , "ДЛФ=Д" ) ;
ТекстЗапр = "//{{ЗАПРОС(ВидыРасч)
|Период с '" + НТП + "' по '" + КТП + "';
|Вир = ЖурналРасчетов.Зарплата.ВидРасч;
|Рез = ЖурналРасчетов.Зарплата.Результат;
|Дни = ЖурналРасчетов.Зарплата.Дни;
|ДатаНачала = ЖурналРасчетов.Зарплата.ДатаНачала;
|ДатаОкончания = ЖурналРасчетов.Зарплата.ДатаОкончания;
|Часы = ЖурналРасчетов.Зарплата.Часы;
|Субконто = ЖурналРасчетов.Зарплата.Субконто;
|Сот = ЖурналРасчетов.Зарплата.Объект;
|КодОбъекта = ЖурналРасчетов.Зарплата.Объект.Код;
|Функция РезСумма = Сумма(Рез);
|Группировка Сот;
|Группировка Вир;
|"
;
Запр = База77 . CreateObject( "Запрос" ) ;
Если Запр. Выполнить( ТекстЗапр) < > 0 Тогда
Пока Запр. Группировка( "Сот" ) = 1 Цикл
Пока Запр. Группировка( "Вир" ) = 1 Цикл
Конеццикла ;
Конеццикла ;
Конецесли ;
Если нам необходимо установить отбор в журнале, например по сотруднику, то сделать это можно следующим образом:
Код 1C v 8.х
"|КодОбъекта = ЖурналРасчетов.Зарплата.Объект.Код;"
"|Условие(КодОбъекта = " + Сотр. код + ");"
Из журнала расчетов можно выбрать записи без запроса, методом прямой выборки. В некоторых ситуациях этот способ может быть даже удобней чем через запрос. В данном случае синтаксис будет довольно простым:
Код 1C v 7.x Запр = База77 . CreateObject( "ЖурналРасчетов.Зарплата" ) ;
Запр. ВыбратьЗаписиПоОбъекту( Сотр, НТП, КТП) ;
Пока Запр. ПолучитьЗапись( ) = 1 Цикл
Конеццикла ;
Написал Валецкий Станислав Категория:
Журналы расчетов