Имя: Пароль:
1C
1С v8
Получение и проверка заполнения ресурса регистра сведений
0 Reclaim
 
14.11.15
19:46
Здравствуйте! Задача стоит такая: Колонка "L"(Номер л.счета в экселе) - проверить, есть ли для физ лица полученного ранее на этапе №1 запись в РС "ЛицевыеСчетаРаботниковОрганизации" (Ресурс РС).
Если есть но не совпадает со значением лицевого счета из файла, перезаписать запись, обновив только ресурс "НомерЛицевогоСчета".
Если нет - создать документ "ЗаявкаНаОткрытиеСчетов" (документ должен быть в разрезе Банков, сколько уникальных БИК в файле загрузки, столько документов на выходе.)
Заполнить реквизиты документа:
Дата - период из реквизита обработки
Организация - Организация из реквизита обработки
Ответственный - текущий пользователь системы (глЗначениеПеременной("глТекущийПользователь"))
ВводНачальныхСведений = Истина
------------------------------------------------------------------
Вот такой код уже прописан:
------------------------------------------------------------------
Для НомерСтроки = 2 ПО КоличествоСтрок Цикл
            
    ОбработкаПрерыванияПользователя();
            
    ФизЛицоСсылка = Справочники.ФизическиеЛица.НайтиПоНаименованию(СокрЛП(Excel.Cells(НомерСтроки,2).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,3).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,4).Text));
    ИНН = СокрЛП(Excel.Cells(НомерСтроки,5).Text);
    ДатаРождения = СокрЛП(Excel.Cells(НомерСтроки,14).Text);
    МестоРождения = СокрЛП(Excel.Cells(НомерСтроки,15).Text);
    //Этап №3
    НомерСчета = СокрЛП(Excel.Cells(НомерСтроки,12).Text);
            
    Если НЕ ЗначениеЗаполнено(ФизЛицоСсылка) Тогда
        Сообщить("Не найдено физлицо: " + СокрЛП(Excel.Cells(НомерСтроки,2).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,3).Text) + " " + СокрЛП(Excel.Cells(НомерСтроки,4).Text));
        Продолжить;
    КонецЕсли;
            
    Попытка
        Если ДатаРождения = СокрЛП(Excel.Cells(НомерСтроки,14).Text) <> 0 Тогда
            ДатаРождения = Дата(Сред(ДатаРождения,7,4),Сред(ДатаРождения,4,2),Сред(ДатаРождения,1,2));
            Продолжить;
        КонецЕсли;
    Исключение
                
    КонецПопытки;
            
    ФизЛицоОбъект = ФизЛицоСсылка.ПолучитьОбъект();
            
    Если НЕ ЗначениеЗаполнено(ФизЛицоОбъект.ИНН) ИЛИ ЗначениеЗаполнено(ФизЛицоОбъект.ИНН) <> ИНН Тогда
        ФизЛицоОбъект.ИНН = ИНН;
    КонецЕсли;
            
    Если НЕ ЗначениеЗаполнено(ФизЛицоОбъект.ДатаРождения) ИЛИ ЗначениеЗаполнено(ФизЛицоОбъект.ДатаРождения) <> ДатаРождения Тогда
        ФизЛицоОбъект.ДатаРождения = ДатаРождения;
    КонецЕсли;
            
    Если НЕ ЗначениеЗаполнено(ФизЛицоОбъект.МестоРождения) ИЛИ ЗначениеЗаполнено(ФизЛицоОбъект.МестоРождения) <> МестоРождения Тогда
        ФизЛицоОбъект.МестоРождения = МестоРождения;
    КонецЕсли;
            
    ФизЛицоОбъект.Наименование = ФизЛицоСсылка;
    //Этап №3
                                
    ФизЛицоОбъект.Записать();
КонецЦикла;

------------------------------------------------------------------
Подскажите, как мне обратиться к РС, чтобы проверить запись ресурса. Смотрел СП, и если правильно понял, то нужно как то обращаться через НаборЗаписей, но не могу понять как это сделать.

И еще такой вопрос: "(Документ должен быть в разрезе Банков, сколько уникальных БИК в файле загрузки, столько документов на выходе)" - не совсем понимаю суть того, что тут нужно прописывать.

P.S. Если можно, то направьте на то, что именно нужно почитать.
1 Рэйв
 
14.11.15
19:52
На Радченко както неудобно посылать. А хочется.
2 Reclaim
 
14.11.15
19:56
Радченко - Практическое пособие разработчика? Что-то не помню, чтобы там рассказывалось о таком.
3 ДенисЧ
 
14.11.15
19:59
(1) на Радченко посылать неприлично.
А вот на й-у-х - вполне можно
4 Горогуля
 
14.11.15
20:00
(2) там более крутые вещи. Только аккуратный, после чтения у тебя может пропасть склонность к тупым вопросам
5 Рэйв
 
14.11.15
20:03
6 Рэйв
 
14.11.15
20:07
Лично собранный chm из этой книги не дам принципиально.
7 MishaD
 
14.11.15
20:12
Интересно, что автор вопроса получает таким мегакодом.
ДатаРождения = СокрЛП(Excel.Cells(НомерСтроки,14).Text) <> 0
8 Reclaim
 
14.11.15
20:14
То, чтобы пустое значение в эксел, не преобразовывалось в тип "дата"
9 Горогуля
 
14.11.15
20:18
(8) а полное? Дату там хочешь?
10 Горогуля
 
14.11.15
20:19
Богмой. Там двойное сравнение
11 Reclaim
 
14.11.15
20:31
Учитывая, что я 4ый день занимаюсь программированием, и пытаюсь разобраться, но не получается, в "тупых вопросах", то в этом ничего такого нет.

P.S. Для того, кому такие вопросы являются "тупыми", лучше промолчать, чем причитать и тыкать тем, что вопрос "тупой".
12 Горогуля
 
14.11.15
20:55
А смахивает на реальную задачу...
Ты действительно думаешь, что сейчас придёт большой и ласковый дядя, который прожует тебе принципы программирования в общем и их применимость в задаче в частном?
13 Reclaim
 
14.11.15
21:01
Так это и есть реальная задача. Я жду, что кто-нибудь направит ход мыслей в нужном русле. Т.к. абсолютно не зная синтаксиса 1С мне сложно понять, каким методом мне вывести ресурс РС в мой код, чтобы потом я смог к нему обратиться и продолжить прописывать код
14 Горогуля
 
14.11.15
21:01
Я тут с падаваном неделю (пять дней!) рисовал 31 невидимую допколонку на форме. Много килобайт текста утекло. Вроде не впустую
2 + 2 = 3.9999999999999999999999999999999...