Имя: Пароль:
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 невидимую допколонку на форме. Много килобайт текста утекло. Вроде не впустую
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший