Имя: Пароль:
1C
1С v8
Переход с ЗиК 7.7 на ЗиК 8.2 бюджетного учреждения
0 ponaroshku
 
21.11.11
08:34
Привет всем!

После перехода появились долги у работников перед предприятием и у предприятия перед работниками

Для исправления этой ситуации необходимо занулить начальное сальдо.

Есть обработка

Перем ТекДокумент;    
Перем КонецПериодРегистрации;
Перем ТекДокСтарый;
Перем ТаблицаЗКВ;
Перем ДатаКон;
Перем СтатьяФинансированияПоУм;
Перем КОСГУпоУм;

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   ДатаКон=КонецДня(ДатаКонца);
   СтатьяФинансированияПоУм=СтатьяФинансирования;
   КОСГУпоУм=КОСГУ;
   
   ПереносОстатковНаОдинИсточник();
   ВозвратНДФЛ();
   ВыплатаДолговПоОстаткам();
   ВозвратДолговПоОстаткам();

КонецПроцедуры


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


Процедура ВозвратНДФЛ()
   
   ЗапросНДФЛ=Новый Запрос;
   ЗапросНДФЛ.Текст=
   
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    НДФЛКЗачету.Организация КАК Организация,
   |    НДФЛКЗачету.ФизЛицо КАК ФизЛицо,
   |    НАЧАЛОПЕРИОДА(НДФЛКЗачету.Период, МЕСЯЦ) КАК ПериодРегистрации,
   |    НДФЛКЗачету.СуммаНДФЛКЗачетуОборот КАК Сумма,
   |    НДФЛКЗачету.СтатьяФинансирования КАК СтатьяФинансирования,
   |    НДФЛКЗачету.КОСГУ
   |ИЗ
   |    РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоРасчетуЗарплатыОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |        ПО НДФЛКЗачету.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |            И (УчетнаяПолитикаПоПерсоналуОрганизаций.УчетЗадолженностиПоМесяцам)
   |ГДЕ
   |    НДФЛКЗачету.Организация = &Организация";
   ЗапросНДФЛ.УстановитьПараметр("НачалоПериода",ДатаНач);
   ЗапросНДФЛ.УстановитьПараметр("КонецПериода",ДатаКон);
   ЗапросНДФЛ.УстановитьПараметр("Организация",Организация);
       
   Рез=ЗапросНДФЛ.Выполнить().Выбрать();
   
   Ном=1;
   //НачатьТранзакцию();
   Пока Рез.Следующий() Цикл
       ПериодРегистрации=Рез.ПериодРегистрации;
       КонецПериодРегистрации=КонецМесяца(ПериодРегистрации);
       
       Если Рез.Сумма<>0 Тогда
           ДокВозврат=Документы.НДФЛВозвратНалога.СоздатьДокумент();
           ДокВозврат.Организация=Организация;
           ДокВозврат.Номер="Обр_"+НомерДл(Ном,7);
           ДокВозврат.Дата=КонецПериодРегистрации;
           ДокВозврат.МесяцНалоговогоПериода=ПериодРегистрации;
           СтрДок=ДокВозврат.РаботникиОрганизации.Добавить();
           СтрДок.ФизЛицо=Рез.ФизЛицо;
           СтрДок.СуммаВозвратаПоСтавке13=Рез.Сумма;
           СтрДок.КОСГУ=КОСГУПоУм;
           СтрДок.КодПоОКАТО=Организация.КодПоОКАТО;
           СтрДок.КПП=Организация.КПП;
           СтрДок.СтатьяФинансирования=СтатьяФинансированияПоУм;
           ДокВозврат.Комментарий="Обработка ""Обнуление остатков - возврат НДФЛ"" - "+Формат(ПериодРегистрации,"ДФ=MMMM yyyy");
           Попытка
               ДокВозврат.Записать(РежимЗаписиДокумента.Проведение);
           Исключение
               ДокВозврат.УстановитьНовыйНомер("Обр_");
               ДокВозврат.Записать(РежимЗаписиДокумента.Проведение);
           КонецПопытки;
           Ном=Ном+1;
       КонецЕсли;
   КонецЦикла;
   //ЗафиксироватьТранзакцию();
   //Предупреждение("Конец возврата НДФЛ!");
   Сообщить("Конец возврата НДФЛ!");

КонецПроцедуры  //ВозвратНДФЛ


Процедура ВыплатаДолговПоОстаткам()

   Запрос=СоздатьЗапрос();
   Рез=Запрос.Выполнить().Выбрать();
////Проверка имеющихся номеров документов
//    ДопЗапрос=Новый Запрос;
//    ДопЗапрос.Текст=
//"ВЫБРАТЬ
//|    МАКСИМУМ(ВедомостьВКассу.Номер) КАК НомерВедомость,
//|    МАКСИМУМ(ЗарплатаКВыплатеОрганизаций.Номер) КАК НомерЗКВ
//|ИЗ
//|    Документ.ВедомостьВКассу КАК ВедомостьВКассу,
//|    Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций";
//    РезНомера=ДопЗапрос.Выполнить().Выгрузить();
   
   ПериодРегистрации='00010101';
   ТаблицаДолжников=Новый ТаблицаЗначений();
   ТаблицаДолжников.Колонки.Добавить("Сотрудник",,,);
   ТаблицаДолжников.Колонки.Добавить("Сумма",,,);
   
   //НачатьТранзакцию();
   Ном=1;
   Пока Рез.Следующий() Цикл
       Если Рез.ПериодРегистрации<>ПериодРегистрации Тогда
//Закрываем старый
           Если ТекДокумент<>Неопределено Тогда
               ЗакрытиеДокта(ТекДокумент,ТаблицаЗКВ,ТекДокСтарый,КонецПериодРегистрации,ПериодРегистрации);
           КонецЕсли;
//Создаем новый
           ПериодРегистрации=Рез.ПериодРегистрации;
           КонецПериодРегистрации=КонецМесяца(ПериодРегистрации);
           ТекДокСтарый=Ложь;
//Проверяем, нет ли уже документа            
           МалЗапрос=Новый Запрос;
           МалЗапрос.Текст=
           "ВЫБРАТЬ
           |    ЗарплатаКВыплатеОрганизаций.Ссылка КАК СсылкаНачисления,
           |    ВедомостьВКассу.Ссылка КАК СсылкаВыплаты
           |ИЗ
           |    Документ.ЗарплатаКВыплатеОрганизаций КАК ЗарплатаКВыплатеОрганизаций
           |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВедомостьВКассу КАК ВедомостьВКассу
           |        ПО (ВедомостьВКассу.ДокументОснование = ЗарплатаКВыплатеОрганизаций.Ссылка)
           |ГДЕ
           |    ЗарплатаКВыплатеОрганизаций.Проведен = ЛОЖЬ
           |    И ЗарплатаКВыплатеОрганизаций.ПериодРегистрации МЕЖДУ &ПериодРегистрацииН И &ПериодРегистрацииК
           |    И ЗарплатаКВыплатеОрганизаций.Комментарий ПОДОБНО &Комментарий";
           
           МалЗапрос.УстановитьПараметр("ПериодРегистрацииН",НачалоМесяца(ПериодРегистрации));
           МалЗапрос.УстановитьПараметр("ПериодРегистрацииК",КонецПериодРегистрации);
           МалЗапрос.УстановитьПараметр("Комментарий","Обработка ""Выплата долгов по остаткам"" - "+Формат(ПериодРегистрации,"ДФ=MMMM yyyy"));  //Было MMMM.yyyy
           
           ТаблицаЗКВ=МалЗапрос.Выполнить().Выгрузить();
           Если ТаблицаЗКВ.Количество()>0 Тогда
               ТекДокумент=ТаблицаЗКВ.Получить(0).СсылкаНачисления.ПолучитьОбъект;
               ТекДокСтарый=Истина;
           Иначе
               ТекДокумент=Документы.ЗарплатаКВыплатеОрганизаций.СоздатьДокумент();
               ТекДокумент.Дата=КонецПериодРегистрации;
               ТекДокумент.Номер="Ост_"+НомерДл(Ном,7);
               ТекДокумент.Комментарий="Обработка ""Обнуление остатков - выплата недоплаченного"" - "+Формат(ПериодРегистрации,"ДФ=MMMM yyyy");    
               ТекДокумент.ПериодРегистрации=ПериодРегистрации;
               ТекДокумент.Организация=Рез.Организация;
               ТекДокумент.ХарактерВыплаты=Перечисления.ХарактерВыплатыЗарплаты.Зарплата;    //.ПрочиеРазовыеНачисления;    //.Задолженность;
               ТекДокумент.СтатьяФинансирования=СтатьяФинансированияПоУм;
               ТекДокумент.КОСГУ=КОСГУПоУм;
               Ном=Ном+1;
           КонецЕсли;
       КонецЕсли;
       
       Попытка
           СтрокаДолжника=ТаблицаДолжников.Найти("Сотрудник",Рез.ФизЛицо);
       Исключение
           СтрокаДолжника=Неопределено;
       КонецПопытки;
       
       Если СтрокаДолжника=Неопределено Тогда
           СтрокаДолжника=ТаблицаДолжников.Добавить();
           СтрокаДолжника.Сотрудник=Рез.ФизЛицо;
           СтрокаДолжника.Сумма=0;
       КонецЕсли;
       
       СтрокаДолжника.Сумма=СтрокаДолжника.Сумма+Рез.СуммаВзаиморасчетовКонечныйОстаток;
       
       Если СтрокаДолжника.Сумма>0 Тогда
           Если НЕ ТекДокСтарый Тогда
               ЗаполнениеСтрокиТЧ_ЗКВ(ТекДокумент,Рез,СтрокаДолжника);
           Иначе
               СтрокаТЧ=ТекДокумент.Зарплата.Найти("ФизЛицо",Рез.ФизЛицо);
               Если СтрокаТЧ=Неопределено Тогда
                   ЗаполнениеСтрокиТЧ_ЗКВ(ТекДокумент,Рез,СтрокаДолжника);
               ИначеЕсли СтрокаТЧ.Сумма<>СтрокаДолжника.Сумма Тогда
                   СтрокаТЧ.Сумма=СтрокаДолжника.Сумма;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   ЗакрытиеДокта(ТекДокумент,ТаблицаЗКВ,ТекДокСтарый,КонецПериодРегистрации,ПериодРегистрации);
   //ЗафиксироватьТранзакцию();
   //Предупреждение("Конец выплаты долгов по остаткам!");
   Сообщить("Конец выплаты долгов по остаткам!");

КонецПроцедуры //Выплата долгов по остаткам


Процедура ВозвратДолговПоОстаткам()

   Запрос=СоздатьЗапрос();

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

КонецПроцедуры  //ВозвратДолговПоОстаткам

// <Описание функции>
//
// Параметры
//  <Параметр1>  - <Тип.Вид> - <описание параметра>
//                 <продолжение описания параметра>
//  <Параметр2>  - <Тип.Вид> - <описание параметра>
//                 <продолжение описания параметра>
//
// Возвращаемое значение:
//   <Тип.Вид>   - <описание возвращаемого значения>
//
Функция НомерДл(Ном,Дл)
   СтрНом=Строка(Ном);
   Если СтрДлина(СтрНом)>Дл Тогда
       Предупреждение("Номер длиннее отведенных для него позиций, номер будет обрезан!!!");
       СтрНом=Прав(СтрНом,Дл);
       //Возврат СтрНом;
   Иначе
       Для к=1 По Дл-СтрДлина(СтрНом) Цикл
           СтрНом="0"+СтрНом;
       КонецЦикла;
   КонецЕсли;
   
   Возврат СтрНом;
   

КонецФункции // Номер7()

//
Функция СоздатьЗапрос()
   Запрос=Новый Запрос;
   
   Запрос.Текст=
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ИсточникДанных.Организация КАК Организация,
   |    ИсточникДанных.ПериодВзаиморасчетов КАК ПериодРегистрации,
   |    ИсточникДанных.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    ИсточникДанных.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
   |    ИсточникДанных.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
   |    ИсточникДанных.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    ИсточникДанных.Физлицо КАК Физлицо,
   |    ИсточникДанных.СтатьяФинансирования КАК СтатьяФинансирования,
   |    ИсточникДанных.КОСГУ
   |ПОМЕСТИТЬ СтруктураЗадолженностиОрганизаций
   |ИЗ
   |    РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , {(ПериодВзаиморасчетов) КАК ПериодРегистрации, (Организация).*}) КАК ИсточникДанных
   |{ГДЕ
   |    ИсточникДанных.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    ИсточникДанных.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
   |    ИсточникДанных.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
   |    ИсточникДанных.СуммаВзаиморасчетовКонечныйОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    ИсточникДанных.Организация.*,
   |    ИсточникДанных.Физлицо.*}
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    НачальныйОстатокОбороты.Организация КАК Организация,
   |    НачальныйОстатокОбороты.ФизЛицо КАК ФизЛицо,
   |    СУММА(НачальныйОстатокОбороты.СуммаНДФЛКЗачетуОстаток) КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    0 КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    0 КАК СуммаВзаиморасчетовПриход,
   |    0 КАК СуммаВзаиморасчетовРасход,
   |    НачальныйОстатокОбороты.ПериодРегистрации КАК ПериодРегистрации,
   |    НачальныйОстатокОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
   |    НачальныйОстатокОбороты.КОСГУ
   |ПОМЕСТИТЬ НДФЛкЗачетуНачальноеСальдо
   |ИЗ
   |    (ВЫБРАТЬ
   |        НДФЛКЗачету.Организация КАК Организация,
   |        &НачалоПериода КАК ПериодРегистрации,
   |        НДФЛКЗачету.ФизЛицо КАК ФизЛицо,
   |        НДФЛКЗачету.СуммаНДФЛКЗачетуОстаток КАК СуммаНДФЛКЗачетуОстаток,
   |        НДФЛКЗачету.СтатьяФинансирования КАК СтатьяФинансирования,
   |        НДФЛКЗачету.КОСГУ КАК КОСГУ
   |    ИЗ
   |        РегистрНакопления.НДФЛКЗачету.Остатки(&НачалоПериода, {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        НДФЛКЗачету.Организация,
   |        ДОБАВИТЬКДАТЕ(НДФЛКЗачету.Период, МЕСЯЦ, 1),
   |        НДФЛКЗачету.ФизЛицо,
   |        НДФЛКЗачету.СуммаНДФЛКЗачетуОборот,
   |        НДФЛКЗачету.СтатьяФинансирования,
   |        НДФЛКЗачету.КОСГУ
   |    ИЗ
   |        РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоРасчетуЗарплатыОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |            ПО НДФЛКЗачету.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |                И (УчетнаяПолитикаПоПерсоналуОрганизаций.УчетЗадолженностиПоМесяцам)) КАК НачальныйОстатокОбороты
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоПерсоналуОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |        ПО НачальныйОстатокОбороты.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |{ГДЕ
   |    НачальныйОстатокОбороты.Организация.*,
   |    НачальныйОстатокОбороты.ФизЛицо.*,
   |    НачальныйОстатокОбороты.ПериодРегистрации КАК ПериодРегистрации}
   |
   |СГРУППИРОВАТЬ ПО
   |    НачальныйОстатокОбороты.Организация,
   |    НачальныйОстатокОбороты.ФизЛицо,
   |    НачальныйОстатокОбороты.ПериодРегистрации,
   |    НачальныйОстатокОбороты.СтатьяФинансирования,
   |    НачальныйОстатокОбороты.КОСГУ
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    НачальныйОстатокОбороты.Организация КАК Организация,
   |    НачальныйОстатокОбороты.ФизЛицо КАК ФизЛицо,
   |    НачальныйОстатокОбороты.СуммаНДФЛКЗачетуОстаток КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    0 КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    0 КАК СуммаВзаиморасчетовПриход,
   |    0 КАК СуммаВзаиморасчетовРасход,
   |    НачальныйОстатокОбороты.ПериодРегистрации КАК ПериодРегистрации,
   |    НачальныйОстатокОбороты.СтатьяФинансирования КАК СтатьяФинансирования,
   |    НачальныйОстатокОбороты.КОСГУ
   |ПОМЕСТИТЬ НДФЛкЗачетуКонечноеСальдо
   |ИЗ
   |    (ВЫБРАТЬ
   |        НДФЛКЗачету.Организация КАК Организация,
   |        &НачалоПериода КАК ПериодРегистрации,
   |        НДФЛКЗачету.ФизЛицо КАК ФизЛицо,
   |        НДФЛКЗачету.СуммаНДФЛКЗачетуОстаток КАК СуммаНДФЛКЗачетуОстаток,
   |        НДФЛКЗачету.СтатьяФинансирования КАК СтатьяФинансирования,
   |        НДФЛКЗачету.КОСГУ КАК КОСГУ
   |    ИЗ
   |        РегистрНакопления.НДФЛКЗачету.Остатки(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ), СЕКУНДА, 1), {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        НДФЛКЗачету.Организация,
   |        ДОБАВИТЬКДАТЕ(НДФЛКЗачету.Период, МЕСЯЦ, 1),
   |        НДФЛКЗачету.ФизЛицо,
   |        НДФЛКЗачету.СуммаНДФЛКЗачетуОборот,
   |        НДФЛКЗачету.СтатьяФинансирования,
   |        НДФЛКЗачету.КОСГУ
   |    ИЗ
   |        РегистрНакопления.НДФЛКЗачету.Обороты(ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ), СЕКУНДА, 1), ДОБАВИТЬКДАТЕ(&КонецПериода, СЕКУНДА, 1), Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоРасчетуЗарплатыОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |            ПО НДФЛКЗачету.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |                И (УчетнаяПолитикаПоПерсоналуОрганизаций.УчетЗадолженностиПоМесяцам)) КАК НачальныйОстатокОбороты
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоПерсоналуОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |        ПО НачальныйОстатокОбороты.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |{ГДЕ
   |    НачальныйОстатокОбороты.Организация.*,
   |    НачальныйОстатокОбороты.ФизЛицо.*,
   |    НачальныйОстатокОбороты.ПериодРегистрации КАК ПериодРегистрации}
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    Взаиморасчеты.Организация КАК Организация,
   |    НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, МЕСЯЦ) КАК ПериодРегистрации,
   |    Взаиморасчеты.Физлицо КАК ФизЛицо,
   |    СУММА(ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК СуммаВзаиморасчетовПриход,
   |    СУММА(ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК СуммаВзаиморасчетовРасход,
   |    0 КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    0 КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    Взаиморасчеты.СтатьяФинансирования КАК СтатьяФинансирования,
   |    Взаиморасчеты.КОСГУ
   |ПОМЕСТИТЬ КомпенсацияЗаЗадержкуЗП
   |ИЗ
   |    РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК Взаиморасчеты
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата
   |        ПО Взаиморасчеты.Физлицо = ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо
   |            И Взаиморасчеты.Ведомость = ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоПерсоналуОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |        ПО Взаиморасчеты.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |ГДЕ
   |    Взаиморасчеты.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
   |    И Взаиморасчеты.СуммаВзаиморасчетов <> 0
   |    И Взаиморасчеты.Период МЕЖДУ &НачалоПериода И &КонецПериода
   |{ГДЕ
   |    Взаиморасчеты.Физлицо.*,
   |    Взаиморасчеты.Организация.*}
   |
   |СГРУППИРОВАТЬ ПО
   |    Взаиморасчеты.Организация,
   |    Взаиморасчеты.Физлицо,
   |    НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, МЕСЯЦ),
   |    Взаиморасчеты.СтатьяФинансирования,
   |    Взаиморасчеты.КОСГУ
   |
   |ИМЕЮЩИЕ
   |    СУММА(ЗарплатаКВыплатеОрганизацийЗарплата.КомпенсацияЗаЗадержкуЗарплаты) <> 0
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    НДФЛКЗачету.Организация КАК Организация,
   |    НДФЛКЗачету.ФизЛицо КАК ФизЛицо,
   |    НАЧАЛОПЕРИОДА(НДФЛКЗачету.Период, МЕСЯЦ) КАК ПериодРегистрации,
   |    НДФЛКЗачету.СуммаНДФЛКЗачетуОборот КАК СуммаВзаиморасчетовПриход,
   |    0 КАК СуммаВзаиморасчетовРасход,
   |    0 КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    0 КАК СуммаВзаиморасчетовКонечныйОстаток,
   |    НДФЛКЗачету.СтатьяФинансирования КАК СтатьяФинансирования,
   |    НДФЛКЗачету.КОСГУ
   |ПОМЕСТИТЬ НДФЛкЗачету
   |ИЗ
   |    РегистрНакопления.НДФЛКЗачету.Обороты(&НачалоПериода, &КонецПериода, Месяц, {(Физлицо), (Организация)}) КАК НДФЛКЗачету
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчетнаяПолитикаПоРасчетуЗарплатыОрганизаций КАК УчетнаяПолитикаПоПерсоналуОрганизаций
   |        ПО НДФЛКЗачету.Организация = УчетнаяПолитикаПоПерсоналуОрганизаций.Организация
   |            И (УчетнаяПолитикаПоПерсоналуОрганизаций.УчетЗадолженностиПоМесяцам)
   |{ГДЕ
   |    НДФЛКЗачету.Организация.*,
   |    НДФЛКЗачету.ФизЛицо.*,
   |    (НАЧАЛОПЕРИОДА(НДФЛКЗачету.Период, МЕСЯЦ)) КАК ПериодРегистрации}
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    СтруктураЗадолженностиОрганизаций.Организация КАК Организация,
   |    СтруктураЗадолженностиОрганизаций.Физлицо,
   |    СтруктураЗадолженностиОрганизаций.ПериодРегистрации,
   |    СтруктураЗадолженностиОрганизаций.СуммаВзаиморасчетовНачальныйОстаток,
   |    СтруктураЗадолженностиОрганизаций.СуммаВзаиморасчетовПриход,
   |    СтруктураЗадолженностиОрганизаций.СуммаВзаиморасчетовРасход,
   |    СтруктураЗадолженностиОрганизаций.СуммаВзаиморасчетовКонечныйОстаток,
   |    СтруктураЗадолженностиОрганизаций.СтатьяФинансирования,
   |    СтруктураЗадолженностиОрганизаций.КОСГУ
   |ПОМЕСТИТЬ СтруктураЗадолженности
   |ИЗ
   |    СтруктураЗадолженностиОрганизаций КАК СтруктураЗадолженностиОрганизаций
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    НДФЛкЗачетуНачальноеСальдо.Организация,
   |    НДФЛкЗачетуНачальноеСальдо.ФизЛицо,
   |    НДФЛкЗачетуНачальноеСальдо.ПериодРегистрации,
   |    НДФЛкЗачетуНачальноеСальдо.СуммаВзаиморасчетовНачальныйОстаток,
   |    НДФЛкЗачетуНачальноеСальдо.СуммаВзаиморасчетовПриход,
   |    НДФЛкЗачетуНачальноеСальдо.СуммаВзаиморасчетовРасход,
   |    НДФЛкЗачетуНачальноеСальдо.СуммаВзаиморасчетовКонечныйОстаток,
   |    НДФЛкЗачетуНачальноеСальдо.СтатьяФинансирования,
   |    НДФЛкЗачетуНачальноеСальдо.КОСГУ
   |ИЗ
   |    НДФЛкЗачетуНачальноеСальдо КАК НДФЛкЗачетуНачальноеСальдо
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    НДФЛкЗачетуКонечноеСальдо.Организация,
   |    НДФЛкЗачетуКонечноеСальдо.ФизЛицо,
   |    НДФЛкЗачетуКонечноеСальдо.ПериодРегистрации,
   |    НДФЛкЗачетуКонечноеСальдо.СуммаВзаиморасчетовНачальныйОстаток,
   |    НДФЛкЗачетуКонечноеСальдо.СуммаВзаиморасчетовПриход,
   |    НДФЛкЗачетуКонечноеСальдо.СуммаВзаиморасчетовРасход,
   |    НДФЛкЗачетуКонечноеСальдо.СуммаВзаиморасчетовКонечныйОстаток,
   |    НДФЛкЗачетуКонечноеСальдо.СтатьяФинансирования,
   |    НДФЛкЗачетуКонечноеСальдо.КОСГУ
   |ИЗ
   |    НДФЛкЗачетуКонечноеСальдо КАК НДФЛкЗачетуКонечноеСальдо
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    КомпенсацияЗаЗадержкуЗП.Организация,
   |    КомпенсацияЗаЗадержкуЗП.ФизЛицо,
   |    КомпенсацияЗаЗадержкуЗП.ПериодРегистрации,
   |    КомпенсацияЗаЗадержкуЗП.СуммаВзаиморасчетовНачальныйОстаток,
   |    КомпенсацияЗаЗадержкуЗП.СуммаВзаиморасчетовПриход,
   |    КомпенсацияЗаЗадержкуЗП.СуммаВзаиморасчетовРасход,
   |    КомпенсацияЗаЗадержкуЗП.СуммаВзаиморасчетовКонечныйОстаток,
   |    КомпенсацияЗаЗадержкуЗП.СтатьяФинансирования,
   |    КомпенсацияЗаЗадержкуЗП.КОСГУ
   |ИЗ
   |    КомпенсацияЗаЗадержкуЗП КАК КомпенсацияЗаЗадержкуЗП
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    НДФЛкЗачету.Организация,
   |    НДФЛкЗачету.ФизЛицо,
   |    НДФЛкЗачету.ПериодРегистрации,
   |    НДФЛкЗачету.СуммаВзаиморасчетовНачальныйОстаток,
   |    НДФЛкЗачету.СуммаВзаиморасчетовПриход,
   |    НДФЛкЗачету.СуммаВзаиморасчетовРасход,
   |    НДФЛкЗачету.СуммаВзаиморасчетовКонечныйОстаток,
   |    НДФЛкЗачету.СтатьяФинансирования,
   |    НДФЛкЗачету.КОСГУ
   |ИЗ
   |    НДФЛкЗачету КАК НДФЛкЗачету
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    СтруктураЗадолженности.Физлицо КАК ФизЛицо,
   |    СтруктураЗадолженности.Организация КАК ГоловнаяОрганизация,
   |    КОНЕЦПЕРИОДА(СтруктураЗадолженности.ПериодРегистрации, МЕСЯЦ) КАК ДАТА
   |ПОМЕСТИТЬ ТаблицаДвижений
   |ИЗ
   |    СтруктураЗадолженности КАК СтруктураЗадолженности
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК Дата,
   |    ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизЛицо,
   |    ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК ГоловнаяОрганизация,
   |    ЗНАЧЕНИЕ(Справочник.СотрудникиОрганизаций.ПустаяСсылка) КАК Сотрудник,
   |    ЗНАЧЕНИЕ(Документ.ДоговорНаВыполнениеРаботСФизЛицом.ПустаяСсылка) КАК Договор,
   |    ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КАК ДатаПоследнегоДвижения,
   |    """" КАК Состояние
   |ПОМЕСТИТЬ РаботникиПредприятия
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    СтруктураЗадолженности.Организация КАК Организация,
   |    СтруктураЗадолженности.Физлицо КАК Физлицо,
   |    СтруктураЗадолженности.ПериодРегистрации КАК ПериодРегистрации,
   |    СУММА(СтруктураЗадолженности.СуммаВзаиморасчетовНачальныйОстаток) КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    СУММА(СтруктураЗадолженности.СуммаВзаиморасчетовПриход) КАК СуммаВзаиморасчетовПриход,
   |    СУММА(СтруктураЗадолженности.СуммаВзаиморасчетовРасход) КАК СуммаВзаиморасчетовРасход,
   |    СУММА(СтруктураЗадолженности.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток
   |{ВЫБРАТЬ
   |    Организация.*,
   |    Физлицо.*,
   |    ПериодРегистрации,
   |    СуммаВзаиморасчетовНачальныйОстаток,
   |    СуммаВзаиморасчетовПриход,
   |    СуммаВзаиморасчетовРасход,
   |    СуммаВзаиморасчетовКонечныйОстаток}
   |ИЗ
   |    СтруктураЗадолженности КАК СтруктураЗадолженности
   |        ЛЕВОЕ СОЕДИНЕНИЕ РаботникиПредприятия КАК РаботникиПредприятия
   |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
   |            ПО РаботникиПредприятия.Сотрудник = РаботникиОрганизаций.Сотрудник
   |                И РаботникиПредприятия.ДатаПоследнегоДвижения = РаботникиОрганизаций.Период
   |        ПО СтруктураЗадолженности.Физлицо = РаботникиПредприятия.ФизЛицо
   |            И СтруктураЗадолженности.Организация = РаботникиПредприятия.ГоловнаяОрганизация
   |            И (КОНЕЦПЕРИОДА(СтруктураЗадолженности.ПериодРегистрации, МЕСЯЦ) = РаботникиПредприятия.Дата)
   |ГДЕ
   |    СтруктураЗадолженности.Организация = &Организация
   |{ГДЕ
   |    СтруктураЗадолженности.СуммаВзаиморасчетовНачальныйОстаток КАК СуммаВзаиморасчетовНачальныйОстаток,
   |    СтруктураЗадолженности.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
   |    СтруктураЗадолженности.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
   |    СтруктураЗадолженности.СуммаВзаиморасчетовКонечныйОстаток КАК Сум
1 ponaroshku
 
21.11.11
08:35
ууу не влезло:))

вообщем ругается на

       Если СтрокаДолжника.Сумма>0 Тогда
           Если НЕ ТекДокСтарый Тогда // эту строчку
               ЗаполнениеСтрокиТЧ_ЗКВ(ТекДокумент,Рез,СтрокаДолжника);
           Иначе
               СтрокаТЧ=ТекДокумент.Зарплата.Найти("ФизЛицо",Рез.ФизЛицо);
               Если СтрокаТЧ=Неопределено Тогда
                   ЗаполнениеСтрокиТЧ_ЗКВ(ТекДокумент,Рез,СтрокаДолжника);
               ИначеЕсли СтрокаТЧ.Сумма<>СтрокаДолжника.Сумма Тогда
                   СтрокаТЧ.Сумма=СтрокаДолжника.Сумма;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;




Ошибка
{Форма.Форма.Форма(226)}: Преобразование значения к типу Булево не может быть выполнено
           Если НЕ ТекДокСтарый Тогда
2 Начинающий Программер
 
21.11.11
08:39
(1) "ТекДокСтарый" - я так думаю, что он не булево в данном случае.
3 Gela
 
21.11.11
09:02
код весь не читала - много букв:) но я так поняла, по регистрам меняете КОСГУ и ИФ на нужный? КОСГУ 213,225,226 на 211?
4 ponaroshku
 
21.11.11
09:12
(3) да, именно так

там кода еще больше, я постаралась максимально сжать:))) и то сжатый не влез весь
5 Gela
 
21.11.11
13:05
ну если именно так, то зачем изобретать велосипед? я обработкой с ИТС "Поиск и замнена значений" без проблем все перекинула
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn