8.х Изменение строки табличной части справочника физлица

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Николай7, 11 дек 2017.

  1. TopicStarter Overlay
    Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Добрый день.
    Суть проблемы
    ЗУП 2.5
    В справочнике физ лиц есть табл часть Образование(спр.ВидыОбразованийФизЛиц)
    есть очень много сотрудников у которых выбран помеченный на удаление элемент "высшее образование магистратура" и есть много сотрудников, у которых выбран действующий элемент "высшее образование магистратура"
    Задача : перевыбрать табличную часть образование. Там где помеченный на удаление сделать рабочий.

    подскажите как это реализуется

    Написал обработку по поиску и перевыбору , вот только не пойму как записать готовый результат.
    Код:
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    ФизическиеЛица.Код,
            |    ФизическиеЛица.Ссылка КАК ФизЛицо,
            |    ФизическиеЛицаОбразование.ВидОбразования.Ссылка,
            |    ФизическиеЛицаОбразование.ВидОбразования.Код,
            |    УвольнениеИзОрганизацийРаботникиОрганизации.Ссылка = ЛОЖЬ КАК Ссылка1,
            |    ЕСТЬNULL(СотрудникиОрганизаций.ДатаУвольнения, 0) КАК Поле1
            |ИЗ
            |    Справочник.ФизическиеЛица КАК ФизическиеЛица
            |        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.Образование КАК ФизическиеЛицаОбразование
            |        ПО (ФизическиеЛицаОбразование.Ссылка = ФизическиеЛица.Ссылка)
            |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольнениеИзОрганизацийРаботникиОрганизации
            |            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
            |            ПО УвольнениеИзОрганизацийРаботникиОрганизации.Сотрудник = СотрудникиОрганизаций.Ссылка
            |        ПО (УвольнениеИзОрганизацийРаботникиОрганизации.Физлицо.Ссылка = ФизическиеЛица.Ссылка),
            |    Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций
            |ГДЕ
            |    ФизическиеЛицаОбразование.ВидОбразования.Ссылка = &УДСсылка
            |
            |СГРУППИРОВАТЬ ПО
            |    ФизическиеЛица.Код,
            |    ФизическиеЛица.Ссылка,
            |    ФизическиеЛицаОбразование.ВидОбразования.Ссылка,
            |    ФизическиеЛицаОбразование.ВидОбразования.Код,
            |    УвольнениеИзОрганизацийРаботникиОрганизации.Ссылка = ЛОЖЬ,
            |    ЕСТЬNULL(СотрудникиОрганизаций.ДатаУвольнения, 0)
            |
            |УПОРЯДОЧИТЬ ПО
            |    ФизЛицо";
      
        Запрос.УстановитьПараметр("УДСсылка", УДСсылка);
      
        РезультатЗапроса = Запрос.Выполнить();
      
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
      
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
          
            Если ВыборкаДетальныеЗаписи.Ссылка1 = Ложь Тогда
                 Продолжить;
             КонецЕсли;
           
             Для Каждого ТекОбраз Из ВыборкаДетальныеЗаписи.ФизЛицо.Образование Цикл
                 Если СокрЛП(ВыборкаДетальныеЗаписи.ФизЛицо.Образование[0].ВидОбразования.Код)  = СокрЛП(6)и ВыборкаДетальныеЗаписи.Поле1 = 0 Тогда
                    ТекФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(ВыборкаДетальныеЗаписи.ФизЛицо.Код);
                    Для Каждого ЗначенияОбр Из ТекФизЛицо.Образование Цикл
                        Если  ЗначенияОбр.ВидОбразования.Пустая()Тогда
                            Продолжить;
                        КонецЕсли;  
                        Обр = ЗначенияОбр.ВидОбразования.ПолучитьОбъект() ;
                        Обр =  БудСсылка;
                        ТекФизЛицо.ПолучитьОбъект().Записать();
                    КонецЦикла;
    
                 КонецЕсли;  
            КонецЦикла;
          
          
        КонецЦикла;
    
    Последнее редактирование: 11 дек 2017
  2. nsk1C
    Offline

    nsk1C Профессионал в 1С

    Регистрация:
    25 май 2016
    Сообщения:
    2.045
    Симпатии:
    189
    Баллы:
    104
    Простите за оффтоп, но Вы в курсе, что поддержка ЗУП 2.5 прекращается через 2 недели,
    да и та, что есть - через пень -колоду

    Что за проблема обновиться до 3.1?
    Кстати, в 3.1 такие задачи решаются штатными настройками форм списков (и отчетов)
  3. TopicStarter Overlay
    Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    так я переношу на 3.1.3, вот только данные по помеченным на удаление не переносятся , а при отмене "пометки на удаление", данные всё равно по образованию не переносятся.
    Выходит, что надо поменять образование.
    --- Объединение сообщений, 11 дек 2017 ---
    Может сформировать табличную часть в форме и заполнить
    Код:
    ТекФизЛицо.ПолучитьОбъект(ТаблЧасть).Образование.Загрузить
    Последнее редактирование: 11 дек 2017
  4. TopicStarter Overlay
    Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    Как вариант создать новую строку с нужными данными в табл части.
  5. TopicStarter Overlay
    Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    43
    Симпатии:
    0
    Баллы:
    1
    добрые люди подсказали, есть типовая обработка "поиск и замена значений"