Изменения стандартных правил выгрузки перехода с ЗиК на ЗУП (вычеты НДФЛ на детей)

24.03.12

Учетные задачи - Зарплата

Сейчас уже эту публикацию можно рассматривать только как пример.  В ней показан способ изменения стандартных правил переноса данных из ЗиК 7.7 в ЗУП 8.х в разделе вычетов по НДФЛ на детей. Способ изменения, примеры, скриншоты ниже.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ExtPrbHRM_v20110227_izm_NDFL.ZIP
.ZIP 683,63Kb
66
66 Скачать (1 SM) Купить за 1 850 руб.

Простой пример - вычеты в 2010 году, первый с начала года по пустую дату, второй с середины года по конец года.

вычеты_7_7

По стандартным правилам результат - отсутствие вычетов в первой половине года!

После+загрузки_в_Зуп_стандарт

А вот перенос измененными правилами, как видно, все переносится!

После_загрузки_в_Зуп_зм

На сегодня, 06.03.11, я изменил текущие стандартные правила от 27.02.11. 

Видеоурок по использованию измененных правил уже почти готов, на следующей неделе выкладываю (за праздники поднажму).

 

Далее, для искушенных в коде, представляю алгоритм изменения выгрузки вычетов по НДФЛ на детей. Для начала маленькая проверка самих вычетов:

//******************************************************Изменил Самойлов 17.11.10
            // В ЗиК отсутствует проверка правильности периода, дату начала можно установить большей, чем дата окончания
            КоличествоСтрокТЗ = ТаблицаВычетовНаДетей.КоличествоСтрок();
            НомСтроки = 1;
            Для Сч=1 По КоличествоСтрокТЗ Цикл
                ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(НомСтроки);
                Если (ТаблицаВычетовНаДетей.Период > ТаблицаВычетовНаДетей.ПериодЗавершения)И(ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения)=0) Тогда
                    Сообщить("Некорректный период для вычета на детей у  "+Источник);
                    Сообщить("ДатаНачалаВычета (начала работы в организации)-  "+ТаблицаВычетовНаДетей.Период+", дата окончания вычета - "+ТаблицаВычетовНаДетей.ПериодЗавершения);
                    ТаблицаВычетовНаДетей.УдалитьСтроку(НомСтроки);
                Иначе
                    НомСтроки = НомСтроки + 1;
                КонецЕсли;
            КонецЦикла;
//*******************************************************************************

А вот и сами изменения алгоритма выгрузки, а точнее инвентаризации всевозможных случаев:

    ТаблицаВычетовНаДетей.Свернуть("Физлицо, Период, ПериодЗавершения, КодВычета", "КоличествоДетей, КоличествоДетейЗавершения");
    ТаблицаВычетовНаДетей.Сортировать("+Период,+ПериодЗавершения");
    Пока ТаблицаВычетовНаДетей.КоличествоСтрок() > 0 Цикл

        Если ТаблицаВычетовНаДетей.КоличествоСтрок() > 1 Тогда
            ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(1);

            Для Номер = 2 По ТаблицаВычетовНаДетей.КоличествоСтрок() Цикл
                КодВычета = ТаблицаВычетовНаДетей.ПолучитьЗначение(Номер, "КодВычета");
                Если КодВычета <> ТаблицаВычетовНаДетей.КодВычета Тогда
                    Продолжить;
                КонецЕсли;

                // Правила обработки двух пересекающихся периодов
                //  Всегда у первого периода дата начала меньше чем у второго
                //  С одинаковой датой начала, первым пойдет пустой период

                // 1. даты окончания заполнены и совпадают
                //      в первом периоде: дата окончания становится на день меньше даты начала второго периода
                //      во втором периоде: количество детей - сумма первого и второго периодов

                // 2. у первого периода не заполнена дата окончания, у второго - заполнена
                //      в первом периоде: дата начала становится на день позже даты окончания второго периода
                //      во втором периоде: количество детей - сумма первого и второго периодов

                // 3. у первого и второго периодов совпадают даты начала
                //      в первом периоде: количество детей - сумма первого и второго периодов
                //      во втором периоде: дата начала становится на день больше даты окончания первого периода

                // 4. даты окончания заполнены, не совпадают
                //      в первом периоде: дата окончания становится на день меньше даты начала второго периода
                //      во втором периоде: дата начала становится на день больше даты окончания первого периода
                //      добавляется еще один период:
                //          с даты окончания первого до даты начала второго периода,
                //          количество детей - сумма первого и второго периодов

                БудущийПериод                       = ТаблицаВычетовНаДетей.ПолучитьЗначение(Номер, "Период");
                БудущийПериодЗавершения             = ТаблицаВычетовНаДетей.ПолучитьЗначение(Номер, "ПериодЗавершения");
                БудущееКоличествоДетей              = ТаблицаВычетовНаДетей.ПолучитьЗначение(Номер, "КоличествоДетей");

//******************************************************Изменил Самойлов 17.11.10
                //Наложение, ограниченное равенством справа
                //А1___________________________________________________А2
                //                      Б1_____________________________Б2
                //
                //А2=Б1-1            Передвигаем  конец первого периода до пересечения, количество суммируем во втором периоде
//*******************************************************************************
                Если БудущийПериодЗавершения = ТаблицаВычетовНаДетей.ПериодЗавершения Тогда
                    // Запомним количество детей текущей записи
                    КоличествоДетей             = ТаблицаВычетовНаДетей.КоличествоДетей;

                    // У текущей записи уменьшим дату окончания
                    ТаблицаВычетовНаДетей.ПериодЗавершения = БудущийПериод-1;

                    // Исправим количество детей следующей записи
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    ТаблицаВычетовНаДетей.КоличествоДетей           = ТаблицаВычетовНаДетей.КоличествоДетей + КоличествоДетей;

                    Прервать;
                КонецЕсли;
//******************************************************Изменил Самойлов 17.11.10
                //Если (ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения) = 1) Тогда
                    //// Запомним период завершения текущей записи
                    //ПериодЗавершения          = ТаблицаВычетовНаДетей.ПериодЗавершения;
                    //
                    //// Запомним количество детей текущей записи
                    //КоличествоДетей               = ТаблицаВычетовНаДетей.КоличествоДетей;
                    //
                    //// У текущей записи уменьшим дату начала
                    //ТаблицаВычетовНаДетей.Период = БудущийПериодЗавершения+1;

                    //// Исправим количество детей следующей записи
                    //ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    //ТаблицаВычетовНаДетей.КоличествоДетей         = ТаблицаВычетовНаДетей.КоличествоДетей + КоличествоДетей;

                // Выше закомментировал, т.к. меняют начало первого периода, что считаю неправильным,
                // потому, что все зиждется на сортировке по началу периода

                //Наложение, ограниченное равенством слева
                //конец первого периода может быть только пустое значение,
                //если будет конкретная дата, то сортировкой периоды поменяются местами и попадут в след. условие
                //А1___________________________________________________А2
                //Б1_____________________________Б2
                //
                //А2=Б2  Передвигаем  конец первого периода до конца пересечения, количество суммируем в первом периоде
                //Б1=Б2+1  Б2=А2  Превращаем второй период в кусок первого после пересечения
                Если (ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения) = 1)//к стандарту добавлю еще условие:
                            и (БудущийПериод = ТаблицаВычетовНаДетей.Период) Тогда
                    // Запомним период завершения текущей записи
                    А2          = ТаблицаВычетовНаДетей.ПериодЗавершения;

                    // Запомним количество детей текущей записи
                    КоличествоДетейА                = ТаблицаВычетовНаДетей.КоличествоДетей;

                    // Передвигаем  конец первого периода до конца пересечения
                    ТаблицаВычетовНаДетей.ПериодЗавершения = БудущийПериодЗавершения;                       //А2=Б2

                    // Превращаем второй период в кусок первого после пересечения
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    КоличествоДетейБ                        = ТаблицаВычетовНаДетей.КоличествоДетей;
                    ТаблицаВычетовНаДетей.КоличествоДетей   = КоличествоДетейА;
                    ТаблицаВычетовНаДетей.Период            = ТаблицаВычетовНаДетей.ПериодЗавершения + 1;   //Б1=Б2+1
                    ТаблицаВычетовНаДетей.ПериодЗавершения  = А2;                                           //Б2=А2
                    //количество суммируем в первом периоде
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(1);
                    ТаблицаВычетовНаДетей.КоличествоДетей   = КоличествоДетейА + КоличествоДетейБ;
//*******************************************************************************
                    Прервать;
                КонецЕсли;

                Если (БудущийПериод = ТаблицаВычетовНаДетей.Период) Тогда
                    // Запомним период завершения текущей записи
                    ПериодЗавершения            = ТаблицаВычетовНаДетей.ПериодЗавершения;

                    // У текущей записи исправим количество детей
                    ТаблицаВычетовНаДетей.КоличествоДетей           = ТаблицаВычетовНаДетей.КоличествоДетей + КоличествоДетей;

                    // Исправим дату начала следующей записи
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    ТаблицаВычетовНаДетей.Период    = ПериодЗавершения + 1;

                    Прервать;
                КонецЕсли;
//******************************************************Изменил Самойлов 17.11.10
                //Если (БудущийПериод < ТаблицаВычетовНаДетей.ПериодЗавершения) Тогда

                //Выше - Наложение, ограниченное равенством слева
                //конец первого периода меньше
                //А1__________________А2
                //Б1_____________________________Б2
                //
                //Б1=А2+1      Передвигаем  начало второго периода после пересечения, количество суммируем в первом периоде


                //Дальше
                //Второй период находится внутри первого
                //А1____________________________________________________________________А2
                //                      Б1_____________________________Б2
                //
                //А2=Б1-1            Первый период становится куском первого периода до пересечения
                //Б1=Б2+1   Б2=А2    Второй период становится куском первого периода после пересечения
                //В1=Б1 В2=Б2        Создаем третий период - пересечение

                Если   ((БудущийПериод <  ТаблицаВычетовНаДетей.ПериодЗавершения) // условие для Б1, равно быть не может
                       ИЛИ((БудущийПериод >  ТаблицаВычетовНаДетей.ПериодЗавершения) //Если Б1>А2, то только если А2 пустое
                         И(ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения) = 1))) И //теперь условие для Б2
                          (((БудущийПериодЗавершения <  ТаблицаВычетовНаДетей.ПериодЗавершения)И(ПустоеЗначение(БудущийПериодЗавершения) = 0))
                      ИЛИ ((БудущийПериодЗавершения >  ТаблицаВычетовНаДетей.ПериодЗавершения)
                         И(ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения) = 1))) Тогда
                    // Запомним реквизиты текущей записи
                    ПериодЗавершения            = ТаблицаВычетовНаДетей.ПериодЗавершения;
                    КоличествоДетей             = ТаблицаВычетовНаДетей.КоличествоДетей;

                    // У текущей записи уменьшим дату окончания
                    ТаблицаВычетовНаДетей.ПериодЗавершения = БудущийПериод-1;                               //А2=Б1-1

                    // Исправим дату начала следующей записи
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    ТаблицаВычетовНаДетей.Период            = ТаблицаВычетовНаДетей.ПериодЗавершения + 1;   //Б1=Б2+1
                    ТаблицаВычетовНаДетей.ПериодЗавершения  = ПериодЗавершения;                             //Б2=А2
                    // Добавим новую запись между первым и вторым периодом
                    ТаблицаВычетовНаДетей.НоваяСтрока();
                    ТаблицаВычетовНаДетей.Физлицо                   = Источник;
                    ТаблицаВычетовНаДетей.Период                    = БудущийПериод;                        //В1=Б1
                    ТаблицаВычетовНаДетей.ПериодЗавершения          = БудущийПериодЗавершения;              //В2=Б2
                    ТаблицаВычетовНаДетей.КодВычета                 = КодВычета;
                    ТаблицаВычетовНаДетей.КоличествоДетей           = КоличествоДетей + БудущееКоличествоДетей;
                    ТаблицаВычетовНаДетей.КоличествоДетейЗавершения = КоличествоДетей;

                    Прервать;
                КонецЕсли;

                //Периоды пересекаются краями
                //А1______________________________А2
                //                      Б1_____________________________Б2
                //
                //А2=Б1-1            Первый период становится куском первого периода до пересечения
                //Б1=А2+1            Второй период становится куском второго периода после пересечения
                //В1=Б1 В2=А2        Создаем третий период - пересечение
                Если ((БудущийПериод <  ТаблицаВычетовНаДетей.ПериодЗавершения) // условие для Б1, равно быть не может
                     ИЛИ((БудущийПериод >  ТаблицаВычетовНаДетей.ПериодЗавершения) //Если Б1>А2, то только если А2 пустое
                       И(ПустоеЗначение(ТаблицаВычетовНаДетей.ПериодЗавершения) = 1))) И //теперь условие для Б2
                        ((БудущийПериодЗавершения >  ТаблицаВычетовНаДетей.ПериодЗавершения )
                     ИЛИ((БудущийПериодЗавершения <  ТаблицаВычетовНаДетей.ПериодЗавершения )
                        И(ПустоеЗначение(БудущийПериодЗавершения) = 1))) Тогда
//*******************************************************************************
                    // Запомним реквизиты текущей записи
                    ПериодЗавершения            = ТаблицаВычетовНаДетей.ПериодЗавершения;
                    КоличествоДетей             = ТаблицаВычетовНаДетей.КоличествоДетей;

                    // У текущей записи уменьшим дату окончания
                    ТаблицаВычетовНаДетей.ПериодЗавершения = БудущийПериод-1;

                    // Исправим дату начала следующей записи
                    ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(Номер);
                    ТаблицаВычетовНаДетей.Период    = ПериодЗавершения + 1;

                    // Добавим новую запись между первым и вторым периодом
                    ТаблицаВычетовНаДетей.НоваяСтрока();
                    ТаблицаВычетовНаДетей.Физлицо                   = Источник;
                    ТаблицаВычетовНаДетей.Период                    = БудущийПериод;
                    ТаблицаВычетовНаДетей.ПериодЗавершения          = ПериодЗавершения;
                    ТаблицаВычетовНаДетей.КодВычета                 = КодВычета;
                    ТаблицаВычетовНаДетей.КоличествоДетей           = КоличествоДетей + БудущееКоличествоДетей;
                    ТаблицаВычетовНаДетей.КоличествоДетейЗавершения = КоличествоДетей;

                    Прервать;
                КонецЕсли;

            КонецЦикла;

            ТаблицаВычетовНаДетей.Свернуть("Физлицо, Период, ПериодЗавершения, КодВычета", "КоличествоДетей, КоличествоДетейЗавершения");
            ТаблицаВычетовНаДетей.Сортировать("+Период,+ПериодЗавершения");
        КонецЕсли;

        ТаблицаВычетовНаДетей.ПолучитьСтрокуПоНомеру(1);

        ВыгрузитьПоПравилу(ТаблицаВычетовНаДетей, , , , "НДФЛСтандартныеВычетыНаДетей");

        ТаблицаВычетовНаДетей.УдалитьСтроку(1);

    КонецЦикла;

Благодарю alexk-is за //infostart.ru/public/19856/

 

Публикация //infostart.ru/public/19622/ не активна, но все равно, благодарю Владислава Томашевича.

Изменения новых правил, дополнения отслеживаем на моем блоге: Изменить 1С

См. также

SALE! 10%

Перенос данных 1C Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    166478    333    277    

373

SALE! 20%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 22338 руб.

12.06.2017    141526    798    297    

419

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.234.x) и БП 3.0 (3.0.161.x). Правила подходят для версии ПРОФ и КОРП.

35000 31500 руб.

15.12.2021    24023    169    51    

127

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147148    649    360    

235

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.19.x).

35000 31500 руб.

23.07.2020    51271    228    69    

185

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    36592    94    66    

89

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

55778 50200 руб.

29.10.2018    56209    59    105    

61

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171178    303    257    

378
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. samamoiloff 861 16.12.10 16:51 Сейчас в теме
Изменения стандартных правил выгрузки перехода с ЗиК на ЗУП
2. melenaspb 208 21.12.10 11:00 Сейчас в теме
Столкнулась тем что неправильно переносится ФСС_НС в те месяца когда есть превышение за 415000
Точнее ФСС_НС в данном случае не переносится вообще - страховых нет, а ФСС_НС есть, но про него просто забыли.
3. samamoiloff 861 22.12.10 12:14 Сейчас в теме
Мне задан был вопрос
когда период действия больничного отличается от периода регистрации. То есть если человек болел в январе, а больничный проведен в феврале, то записи по начислению больничного в соответсвующий документ Перенос данных не попадут (и не попадет ни в январь, ни в февраль). Аналогично будет, если человек начал болеть в январе, а закончил феврале, то январский период больничного выпадает вообще

Вот такую ситуацию я исследовал:
Правило конвертации объектов "НачисленияИУдержания". Обработчик "ПослеЗагрузки".
Если смотреть в отладчике в наборе записей РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций все загружаемые записи присутствуют, при вызоае алгоритма в 41 строке обработчика:
Выполнить(Алгоритмы.РассчитатьДниЧасыПоПятидневке);
часть записей в наборе пропадает.
В этом алгоритме происходит запись документа "ПереносДанных", который является регистратором для данного набора записей, при этом часть записей не попадает в виртуальную таблицу РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия,
с которой в дальнейшем теле алгоритма в запросе происходит ВНУТРЕННЕЕ СОЕДИНЕНИЕ с таблицей РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций. Полученный результат запроса не содержит всех исходных записей набора регистра, который загружается в табличную часть документа "ПереносДанных".
В результате теряются при загрузке данные о начислениях по следующим
признакам:
1. Вид расчета источника -
ВидРасчета.ОплатаБЛЗаСчетРаботодателяЕНВДс2010 (другие виды расчета больничных не теряются, хотя в приемнике фигурирует для всех один и тотже вид расчета - ОплатаПоСреднемуБЛ)
2. Период действия расчета - предыдущий месяц
3. Если загружать данные в чистую информационную базу начиная с месяца, в котором есть "пропадающие" начисления, то начисления не пропадают. Если включить в выгрузку предыдущий "пропадающим" начислениям месяц, то начисления пропадают.

Я, к сожалению, не могу знать как заполняется виртуальная таблица РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций.ФактическийПериодДействия
при проведении документа "ПереносДанных" и почему при так складывающихся условиях (период действия предыдущего месяца и вид расчета ИСТОЧНИКА означенный выше) она не заполняется нужными записями, хотя в основной таблице регистра весь набор записей сохраняется. При загрузке ведь все виды расчета больничного конвертируются в один!
Не понятно.
4. пользователь 13.02.11 00:25
Сообщение было скрыто модератором.
...
5. samamoiloff 861 06.03.11 08:39 Сейчас в теме
6. samamoiloff 861 06.03.11 08:52 Сейчас в теме
Добавил в "современные" правила свои изменения по вычетам и выложил. Почему-то думал, что вот-вот ребята из 1С все поправят. Видимо затерялось мое письмишко у них...
Изначально мне ответили, что "Ошибка зарегистрирована с номером 10066919.
Сроки исправления: в одном из следующих релизов." Это было 15.12.11
7. post279 04.01.12 12:59 Сейчас в теме
А где посмотреть "современные" правила?
8. samamoiloff 861 10.01.12 20:35 Сейчас в теме
(7) Так на сайте 1С поддержки пользователей... Или в новом релизе ЗУП (как их достать из релиза см. мой видеоурок). А что, еще кто-то переходит?
9. post279 11.01.12 05:53 Сейчас в теме
Оставьте свое сообщение