Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 07:30

Не могу оформить ведомость на выплату в банк в ЗУП 8.3

Автор VVS, 25 мар 2019, 08:38

0 Пользователей и 1 гость просматривают эту тему.

VVS

Добрый день! Помогите решить проблему, пожалуйста. Ведем параллельный счет зарплаты в старой "самостийной" ЗИК 7.7 и в новой ЗУП 8.3. (т.е. идет адаптация новой программы для наших нужд). Понадобилось из старой в новую подгружать платежные ведомости, потому-что документ большой. Перегружаю через xls-файл. При оформлении документа "ВедомостьНаВыплатуЗарплатыВБанк" получаю следующий результат при выполнении команды "Записать". Именно при выполнении "Записать", т.к. в цикле все строчки заполняются как надо. Получаю - сумма из 1-й строки распространяется по всем строкам, т.е., где-то при записи отрабатывает какая-то привязка к 1-й строке. Где-то что-то я недооформляю, недопрописываю. См. текст:

Процедура ЗагрузитьНаСервере()

   Excel = Новый COMОбъект("Excel.Application");
   РабочаяКнига = Excel.Workbooks;
   Книга = РабочаяКнига.Open(ФайлXLS);
   Лист  = Книга.Sheets("Sheet1");

   ОбДок = Документы.ВедомостьНаВыплатуЗарплатыВБанк.СоздатьДокумент();
   Ячейка = Лист.Cells(1, 1);
   ДатаПериода = СокрЛП(Ячейка.Value);
   Год = Сред(ДатаПериода,7,4);
   Мес = Сред(ДатаПериода,4,2);
   День = Сред(ДатаПериода,1,2);
   ДатаПериода = Дата(Год,Мес,День);
   ОбДок.Дата = КонецМесяца(ДатаПериода);
   ОбДок.ДатаВыплаты = КонецМесяца(ДатаПериода);
   ОбДок.ПериодРегистрации = ДатаПериода;
   ОбДок.ВводНачальныхДанных = Истина;
   ОбДок.Организация = Справочники.Организации.ОрганизацияПоУмолчанию();
   ОбДок.ЗарплатныйПроект = ЗарплатныйПроект;
   
   Для Стр = 5 По 1000 Цикл   // Цикл чтения XLS-файла, после которого все фамилии и суммы на своем месте.
      Ячейка = Лист.Cells(Стр, 2);
      Сотрудник = СокрЛП(Ячейка.Value);
      Сотр = Справочники.Сотрудники.НайтиПоНаименованию(Сотрудник);
      НЗ_ЛС = РегистрыСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.СоздатьНаборЗаписей();
      НЗ_ЛС.Прочитать();
      ЛС = 0;
      Для шаг = 1 По НЗ_ЛС.Количество() Цикл
         СтрЛС = НЗ_ЛС.Получить(шаг - 1);
         Если СтрЛС.ФизическоеЛицо = Сотр.ФизическоеЛицо Тогда
            ЛС = СтрЛС.НомерЛицевогоСчета;
         КонецЕсли;   
      КонецЦикла;   
      СтрСостав = ОбДок.Состав.Добавить();
      СтрСостав.ФизическоеЛицо = Сотр.ФизическоеЛицо;
      СтрСостав.НомерЛицевогоСчета = ЛС;
      СтрЗарплата = ОбДок.Зарплата.Добавить();
      СтрЗарплата.Сотрудник = Сотр;
      СтрЗарплата.ФизическоеЛицо = Сотр.ФизическоеЛицо;
      СтрЗарплата.НомерЛицевогоСчета = ЛС;
      СтрЗарплата.ПериодВзаиморасчетов = ОбДок.ПериодРегистрации;
      Ячейка = Лист.Cells(Стр, 3);
      СтрЗарплата.КВыплате = Число(Ячейка.Value);
      СтрНДФЛ = ОбДок.НДФЛ.Добавить();
      СтрНДФЛ.ФизическоеЛицо = Сотр.ФизическоеЛицо;
      СтрФизЛицо = ОбДок.ФизическиеЛица.Добавить();
      СтрФизЛицо.ФизическоеЛицо = Сотр.ФизическоеЛицо;
   КонецЦикла;
   ОбДок.Записать(РежимЗаписиДокумента.Запись);  // после выполнения этой команды сумма из 1-й строки распространяется на все строки,
//  Только сумма. Фамилии и лицевые счета не распространяются

   РабочаяКнига.Close();
   
КонецПроцедуры

Где-то чего-то недопрописываю. Может через движения, регистр какой-нибудь надо оформить правильно? Подскажите, пожалуйста, разработчики.



VVS

Очень жду помощи! 1с-чики, разработчики, ну уважьте. Очень много писал вопросов в службу поддержки и только на единицы получил ответ.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск