[РЕШЕНО] Как выгрузить новые счета в справочник физические лица?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Kas-tet, 29 июн 2017.

  1. TopicStarter Overlay
    Kas-tet
    Offline

    Kas-tet Опытный в 1С

    Регистрация:
    30 сен 2016
    Сообщения:
    62
    Симпатии:
    1
    Баллы:
    29
    У нас происходит переход на новые счета IBAN 28 знаков, нам делали программу, но видать не доделали и сейчас отказываются поправлять, вот решил попробовать самому, есть код выгрузки, но он не работает, т.е. когда нажимаешь кнопку заполнить ничего не происходит, хотя панель моргнет 1 раз и все. Это выгрузка из файла

    Код:
    Процедура КоманднаяПанель3Действие1(Кнопка)
       
        Запрос = Новый Запрос;
        Запрос.Текст =
          "ВЫБРАТЬ
          |    ВЫРАЗИТЬ(ПолучателиБНПлатежей.Наименование КАК СТРОКА(200)) КАК Наименование,
          |    ПолучателиБНПлатежей.Ссылка,
          |    ПолучателиБНПлатежей.ЛицевойСчет,
          |    ПолучателиБНПлатежей.ВидВклада,
          |    ПолучателиБНПлатежей.НомерСчетаПереходный,
          |    ПолучателиБНПлатежей.Владелец КАК ФизЛицо,
          |    ПолучателиБНПлатежей.Владелец.ТабельныйНомер КАК ТабельныйНомер,
          |    ПолучателиБНПлатежей.Владелец.ЛичныйНомерГражданинаРБ КАК ЛичныйНомерГражданинаРБ,
          |    ПолучателиБНПлатежей.Владелец.Гражданство КАК Гражданство,
          |    ПолучателиБНПлатежей.ВидПолучателя,
          |    ПолучателиБНПлатежей.Получатель,
          |    ПолучателиБНПлатежей.ОсновнойВидВыплаты,
          |    ПолучателиБНПлатежей.ВидВклада + ПолучателиБНПлатежей.ЛицевойСчет КАК ВидВкладаЛицСчет,
          |    ПолучателиБНПлатежей.ЛицевойСчет КАК СтарыйЛицевойСчет,
          |    ПолучателиБНПлатежей.ВидВклада КАК СтарыйВидВклада
          |ИЗ
          |    Справочник.ПолучателиБНПлатежей КАК ПолучателиБНПлатежей";
         
        тзФизЛица = Запрос.Выполнить().Выгрузить();
       
        // заполнение по файлу белинвестбанка
        Если НайтиФайлы(ФайлФизЛиз, "*.xls").Количество() > 0 Тогда
            ЭлементыФормы.ФизЛица.Значение.Очистить();
            Попытка
                Excel = Новый COMОбъект("Excel.Application");
                Excel.Visible = Ложь;
                Excel.DisplayAlerts = Ложь;
            Исключение
                глПредупреждение("Не удалось инициализировать MS Excel");
                Возврат;
            КонецПопытки;
           
            Попытка
                Excel.Workbooks.Open(ФайлФизЛиз);
            Исключение
                глПредупреждение("Не удалось открыть файл MS Excel");
                Excel.quit();
                Excel = Неопределено;
                Возврат;
            КонецПопытки;
           
            Попытка
                Страница = Excel. WorkSheets(1);
                СчСтроки=2;
                Номер_Тел="";
                Пока Страница.Cells(СчСтроки,1).Value <> Неопределено Цикл
                    Попытка
                        ФИО = Страница.Cells(СчСтроки,1).Value;
                    Исключение
                        ФИО = "";
                    Конецпопытки;
                   
                    Попытка
                        ЛицевойСчет = Строка(Страница.Cells(СчСтроки,2).Value);
                    Исключение
                        ЛицевойСчет = "";
                    Конецпопытки;
                   
                    Попытка
                        ЛичныйНомер = Строка(Страница.Cells(СчСтроки,3).Value);
                    Исключение
                        ЛичныйНомер = "";
                    Конецпопытки;
                   
                    Попытка
                        IBAN = Строка(Страница.Cells(СчСтроки,7).Value);
                    Исключение
                        IBAN = "";
                    Конецпопытки;
                   
                    Если ЗначениеЗаполнено(IBAN) Тогда
                        // найдем физ лицо
                        СтрОтбор = Новый Структура;
                        СтрОтбор.Вставить("ВидВкладаЛицСчет", ЛицевойСчет);
                        НайдСтроки = тзФизЛица.НайтиСтроки(СтрОтбор);
                       
                        Если НайдСтроки.Количество() = 1 Тогда
                           
                            НовСтрока = ЭлементыФормы.ФизЛица.Значение.Добавить();
                            ЗаполнитьЗначенияСвойств(НовСтрока, НайдСтроки[0]);
                            НовСтрока.НомерСчетаПереходный = IBAN;
                            НовСтрока.ВидВкладаЛицевой = ЛицевойСчет;
                        Иначе
                            глСообщить("Найденоне несколько элементов с данными " + ЛицевойСчет + " "+ФИО);
                        КонецЕсли;
                    КонецЕсли;
                   
                    СчСтроки = СчСтроки + 1;
                КонецЦикла;
            Исключение
            КонецПопытки;
            Excel.quit();
           
        // загрузка для Беларусбанка. Реальных файлов примеров пока нету.
        ИначеЕсли НайтиФайлы(ФайлФизЛиз, "*.txt").Количество() > 0 Тогда
           
           
        КонецЕсли;
       
    КонецПроцедуры