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

Доработка процедуры

Автор Erkhan, 05 мая 2023, 13:36

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

Erkhan

Ребят помогите с идеями? как доработать эту процедуру так чтобы удалялось не выбранная строка табл части, а все строки и соответственно из регистра сведений "КартыСотрудников"

Процедура ДействияФормыУдалитьКарты(Кнопка)
   // Вставить содержимое обработчика.
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   КартыСотрудниковСрезПоследних.Регистратор,
                  |   КартыСотрудниковСрезПоследних.НомерКарты,
                  |   КартыСотрудниковСрезПоследних.ФизЛицо
                  |ИЗ
                  |   РегистрСведений.КартыСотрудников.СрезПоследних(&ДатаКон, ) КАК КартыСотрудниковСрезПоследних
                  |ГДЕ
                  |   КартыСотрудниковСрезПоследних.ФизЛицо = &ФизЛицо";
   Запрос.УстановитьПараметр("ДатаКон", ТекущаяДата());
   Запрос.УстановитьПараметр("ФизЛицо", Ссылка);
   
   РЗ = Запрос.Выполнить().Выбрать();
   
   Если РЗ.Следующий() Тогда
      Отбор = Новый Структура;
      Отбор.Вставить("НомерКарты", РЗ.НомерКарты);
      ПроверимЗапись = ЭтотОбъект.КартыПитания.НайтиСтроки(Отбор);
      Если ПроверимЗапись.Количество() = 0 Тогда
         НовСтр = ЭтотОбъект.КартыПитания.Добавить();
         НовСтр.НомерКарты = РЗ.НомерКарты;
         НовСтр.ДатаРегистрации = РЗ.Регистратор.Дата;
         ЭтотОбъект.Записать();
      КонецЕсли;
      Если ТипЗнч(РЗ.Регистратор) = Тип("ДокументСсылка.КорректировкаРегистров") Тогда
         Рег = РегистрыСведений.КартыСотрудников.СоздатьНаборЗаписей();
         Рег.Отбор.Регистратор.Установить(РЗ.Регистратор);
         Рег.Прочитать();
         Для каждого стрРег из Рег Цикл
            Если стрРег.НомерКарты = РЗ.НомерКарты и стрРег.ФизЛицо = РЗ.ФизЛицо Тогда
               Рег.Удалить(стрРег)
            КонецЕсли;
         КонецЦикла;
         Рег.Записать();
      КонецЕсли;

      Если ТипЗнч(РЗ.Регистратор) = Тип("ДокументСсылка.РегистрацияКарточек") Тогда
         Док = РЗ.Регистратор.ПолучитьОбъект();
         Для каждого стрДок из Док.тчСотрудники Цикл
            Если стрДок.Карточка = РЗ.НомерКарты и стрДок.ФизЛицо = РЗ.ФизЛицо Тогда
               Док.тчСотрудники.Удалить(стрДок);
            КонецЕсли;
         КонецЦикла;
         Док.Записать();
         
         Рег = РегистрыСведений.КартыСотрудников.СоздатьНаборЗаписей();
         Рег.Отбор.Регистратор.Установить(РЗ.Регистратор);
         Рег.Прочитать();
         Для каждого стрРег из Рег Цикл
            Если стрРег.НомерКарты = РЗ.НомерКарты и стрРег.ФизЛицо = РЗ.ФизЛицо Тогда
               Рег.Удалить(стрРег)
            КонецЕсли;
         КонецЦикла;
         Рег.Записать();
      КонецЕсли;   
   КонецЕсли;
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск