Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не записываются данные в регистр сведений          
Genda Подменю пользователя
сообщение 11.11.12, 14:33
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Всем доброго вечера! Пытаюсь выгруженные данные из дбф файла записать в ЗБУ 8.2. Необходимо перенести паспортные данные и контактную информацию. Задачи анаолгичны. Поэтому остановлюсь на одной, к примеру на паспортных данных. Данные выгружаю в регистр сведений Паспортные данные физ лиц. Код такой:
стр1=1;
Пока стр1<=ФайлВыгрузки1.КоличествоЗаписей() Цикл
    ФайлВыгрузки1.Перейти(стр1);
    стр1=стр1+1;    
    Попытка
        
    Проверка=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Ссылка;
Если (Проверка<>Справочники.ФизическиеЛица.ПустаяСсылка()) тогда

Набор2 = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();

        Если СокрЛП(ФайлВыгрузки1.FIO)="Хасаев Рахматулла Усманович" Тогда
            Продолжить;
        КонецЕсли;
        Набор2.Отбор.ФизЛицо.Установить(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Ссылка);
        Набор2.Отбор.Период.Установить(ДобавитьМесяц(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).ДатаРождения,168));
        Набор2.Прочитать();
        Если Набор2.Количество() = 0 Тогда
            Сообщить("Нет данных по "+СокрЛП(ФайлВыгрузки1.FIO) );
            СтрокаДанных = Набор2.Добавить();
            СтрокаДанных.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Наименование;
            
            Док=СокрЛП(ФайлВыгрузки1.PASP);
            Вид=Лев(Док,Найти(Док,",")-1);
            Серия1=Сред(Док,Найти(Док,",")+1);
            Серия=Лев(Серия1,Найти(Серия1,",")-1);
            Номер1=Сред(Серия1,Найти(Серия,",")+Найти(Серия1,",")+1);
            Номер=Лев(Номер1,Найти(Номер1,",")-1);
            ДатаВ1=Сред(Номер1,Найти(Номер,",")+Найти(Номер1,",")+1);
            ДатаВ=Лев(ДатаВ1,Найти(ДатаВ1,",")-1);
            КемВ = Сред(ДатаВ1,Найти(ДатаВ,",")+Найти(ДатаВ1,",")+1);
            ДатаВДень=Формат(Число(Лев(ДатаВ,2)),"ЧЦ=2; ЧВН=; ЧГ=0");
            ДатаВМес=Формат(Число(Сред(ДатаВ,4,2)),"ЧЦ=2; ЧВН=; ЧГ=0");
            ДатаВГод=Формат(Число(Прав(ДатаВ,4)),"ЧЦ=4; ЧВН=; ЧГ=0");
            ДВ=Дата(ДатаВГод,ДатаВМес,ДатаВДень);
            СтрокаДанных.ДокументВид=Справочники.ДокументыУдостоверяющиеЛичность.ИМНС21
;
            СтрокаДанных.ДокументСерия=Серия;
            СтрокаДанных.ДокументНомер=Номер;
            СтрокаДанных.ДокументДатаВыдачи=ДВ;
            СтрокаДанных.ДокументКемВыдан=КемВ;
            СтрокаДанных.Период=ДобавитьМесяц(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).ДатаРождения,168);
             Набор2.Записать();
            Сообщить("Добавление по "+СокрЛП(ФайлВыгрузки1.FIO));
        Иначе
            Сообщить("Есть данные по "+ СокрЛП(ФайлВыгрузки1.FIO));
        КонецЕсли;
КонецЕсли;
Исключение Сообщить(ФайлВыгрузки1.FIO);Продолжить; КонецПопытки;
КонецЦикла;


Не работает строка Набор2.Записать(), такой вывод сделала из того, что не переходит на строку Сообщить("Добавление по "+СокрЛП(ФайлВыгрузки1.FIO)); следующую за ней. Подскажите в чем ошибка? Заранее,спасибо

Ardi Подменю пользователя
сообщение 11.11.12, 15:37
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Не входит в цикл.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Genda Подменю пользователя
сообщение 11.11.12, 15:55
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 11.11.12, 19:37) *
Не входит в цикл.


Почему вы так решили? В цикл входит. Выводятся сообщения Сообщить("Нет данных по "+СокрЛП(ФайлВыгрузки1.FIO) ); и Сообщить("Есть данные по "+ СокрЛП(ФайлВыгрузки1.FIO));
и в условие Если Набор2.Количество() = 0 Тогда заходит тож. А кстати, если смотреть отладчиком,то на строчке Набор2.Записать(); пишет "Обращение к процедуре объекта как к функции (Записать)". Я как то неправильно использую Записать() что ли?



Genda Подменю пользователя
сообщение 11.11.12, 17:07
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Вопрос решился удалением оператора "Попытка"
В таком виде работает как надо:
стр1=1;
Пока стр1<=ФайлВыгрузки1.КоличествоЗаписей() Цикл
    ФайлВыгрузки1.Перейти(стр1);
    стр1=стр1+1;
Проверка=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Ссылка;
Если (Проверка<>Справочники.ФизическиеЛица.ПустаяСсылка()) тогда
Набор2 = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
Набор2.Отбор.ФизЛицо.Установить(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Ссылка);
        Набор2.Отбор.Период.Установить(ДобавитьМесяц(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).ДатаРождения,168));
Набор2.Прочитать();
Если Набор2.Количество() = 0 Тогда
            Сообщить("Нет данных по "+СокрЛП(ФайлВыгрузки1.FIO) );
            Запись = Набор2.Добавить();
            Запись.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).Ссылка;
            
            Док=СокрЛП(ФайлВыгрузки1.PASP);
            Вид=Лев(Док,Найти(Док,",")-1);
            Серия1=Сред(Док,Найти(Док,",")+1);
            Серия=Лев(Серия1,Найти(Серия1,",")-1);
            Номер1=Сред(Серия1,Найти(Серия,",")+Найти(Серия1,",")+1);
            Номер=Лев(Номер1,Найти(Номер1,",")-1);
            ДатаВ1=Сред(Номер1,Найти(Номер,",")+Найти(Номер1,",")+1);
            ДатаВ=Лев(ДатаВ1,Найти(ДатаВ1,",")-1);
            КемВ = Сред(ДатаВ1,Найти(ДатаВ,",")+Найти(ДатаВ1,",")+1);
            Если ДатаВ<>"" Тогда
                ДатаВДень=Формат(Число(Лев(ДатаВ,2)),"ЧЦ=2; ЧВН=; ЧГ=0");
                ДатаВМес=Формат(Число(Сред(ДатаВ,4,2)),"ЧЦ=2; ЧВН=; ЧГ=0");
                ДатаВГод=Формат(Число(Прав(ДатаВ,4)),"ЧЦ=4; ЧВН=; ЧГ=0");
                ДВ=Дата(ДатаВГод,ДатаВМес,ДатаВДень);
            Иначе ДВ=Дата(1,1,1);
            КонецЕсли;
            Запись.ДокументВид=Справочники.ДокументыУдостоверяющиеЛичность.ИМНС21;
            Запись.ДокументСерия=Серия;
            Запись.ДокументНомер=Номер;
            Запись.ДокументДатаВыдачи=ДВ;
            Запись.ДокументКемВыдан=КемВ;
            Запись.Период=ДобавитьМесяц(Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(ФайлВыгрузки1.FIO)).ДатаРождения,168);
             Набор2.Записать();
            Сообщить("Добавление по "+СокрЛП(ФайлВыгрузки1.FIO));
Иначе
            Сообщить("Есть данные по "+ СокрЛП(ФайлВыгрузки1.FIO));
        КонецЕсли;
КонецЕсли;
КонецЦикла;

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.05.24, 14:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!