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

Проблема с заполнением данных о сотруднике

Автор NatalyL8, 18 окт 2013, 02:44

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

NatalyL8

Добрый день,

помогите, пожалуйста, найти причину ошибку.

Есть стандартная процедура ПроставитьДанныеСтроки(Сотрудник, ДатаСобытия, ЭлементФормы), которую использована во внешней обработке.

Ошибка у меня возникает конкретно в этом куске кода:


// скорректируем даты заполнения датами приема увольнения сотрудника
      СкорректированнаяДатаНачала = Неопределено;
      ТекущиеДанные = ЭлементФормы;

     
   Если ТекущиеДанные <> Неопределено Тогда
      ДатыПриемаУвольнения = ОбщегоНазначенияЗК.ПолучитьЗначенияРеквизитов(Сотрудник, "ДатаПриемаНаРаботу,ДатаУвольнения");
      // корректируем дату, только она заполнена
      Если ЗначениеЗаполнено(ТекущиеДанные.ДатаНачала) Тогда
         
         // если дата начала начисления заполнена и раньше, чем сотрудника приняли на работу
         Если ТекущиеДанные.ДатаНачала < ДатыПриемаУвольнения.ДатаПриемаНаРаботу Тогда
            // если сотрудник принят в текущем месяце,
            // просто "сдвигаем" дату начала,
            Если ДатыПриемаУвольнения.ДатаПриемаНаРаботу < КонецМесяца(ТекущиеДанные.ДатаНачала) Тогда
               ТекущиеДанные.ДатаНачала = ДатыПриемаУвольнения.ДатаПриемаНаРаботу;
               СкорректированнаяДатаНачала = ДатыПриемаУвольнения.ДатаПриемаНаРаботу;
            Иначе
               // или очищаем обе даты совсем если он принят еще позже
               ТекущиеДанные.ДатаНачала = Неопределено;
               ТекущиеДанные.ДатаОкончания = Неопределено;
            КонецЕсли;
            // скорректируем и дату начала события
            Если ЭлементФормы.Колонки.Найти("ДатаНачалаСобытия") <> Неопределено Тогда // см. Точнее ниже
               ТекущиеДанные.ДатаНачалаСобытия = СкорректированнаяДатаНачала;
            КонецЕсли;
         КонецЕсли;
      КонецЕсли;



Точнее:
{ВнешняяОбработка.ExcelЗагрузкаНачисленийУдержаний.МодульОбъекта(28)}: Поле объекта не обнаружено (Колонки)
            Если ЭлементФормы.Колонки.Найти("ДатаНачалаСобытия") <> Неопределено Тогда


Как я выяснила данная ошибка возникает только, если сотрудник принят в тот же месяц, что и месяц начисления
(напр, период 01.09.2013-30.09.2013, сотрудник принят например 08.09.2013)
Если сотрудник принят раньше этого периода все работает нормально.

Возможно это поможет, если в начале процедуры вставить

Если ТипЗнч(ЭлементФормы) <> Тип("ТабличноеПоле") Тогда
      Возврат;
   КонецЕсли;

то процедура не выполняется вообще.

За ранее признательна за помощь.


wise

посмотри ЧТО передаётся в твоём ХИТРОМ
{Как я выяснила данная ошибка возникает только, если сотрудник принят в тот же месяц, что и месяц начисления
(напр, период 01.09.2013-30.09.2013, сотрудник принят например 08.09.2013)}

случае в процедуру параметром "ЭлементФормы"
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

NatalyL8

Цитата: wise от 18 окт 2013, 09:16
посмотри ЧТО передаётся в твоём ХИТРОМ
{Как я выяснила данная ошибка возникает только, если сотрудник принят в тот же месяц, что и месяц начисления
(напр, период 01.09.2013-30.09.2013, сотрудник принят например 08.09.2013)}

случае в процедуру параметром "ЭлементФормы"

Я не совсем еще хорошо знакома с 1С, не подскажите как это сделать.
Добавлено: 18 окт 2013, 16:05


Выяснила, что он не может найти Дату начала и Дату окончания события
добавив в начале код

Если ЭлементФормы.Колонки.Найти("ДатаНачала") <> Неопределено
      И ЭлементФормы.Колонки.Найти("ДатаОкончания") <> Неопределено Тогда

То выдается ошибка

{ВнешняяОбработка.ExcelЗагрузкаНачисленийУдержаний.МодульОбъекта(8)}: Поле объекта не обнаружено (Колонки)
   Если ЭлементФормы.Колонки.Найти("ДатаНачала") <> Неопределено

и тоже самое для даты окончания

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

Рейтинг@Mail.ru Rambler's Top100

Поиск