Обновление периодических регистров сведений через веб-сервис

Форум 1С: Одинэс.Ру

Найти!

Обновление периодических регистров сведений через веб-сервис

Anonymous
26.03.2009 - 10:38
Не могу понять в чем проблема. Уже потратил 8 часов :(
Новый создается, старый не обновляется. Причем Запись вроде как проходит. Пытался разными способами, результат один и тотже :(
Все происходит в "веб-сервисе", может проблема в этом.
 
//Запись удостоверения личности
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ФизЛицо", ФизЛицоОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПаспортныеДанныеФизЛицСрезПоследних.Период,
| ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
| ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства
|ИЗ
| РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(, ФизЛицо = &ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить(), Выборка);
КонецЕсли;
    // запись в регистр паспортных данных
SetSyncDataResult = SetSyncDataResult + мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество();
                            НоваяЗапись = 0;
Если мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество() > 0 И
ЗначениеЗаполнено(мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период) Тогда
Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить();
НоваяЗапись = 1;
КонецЕсли;
 
ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.НайтиПоРеквизиту("КодИМНС",doc_type);
 
Если ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ПустаяСсылка() Тогда
 
ВызватьИсключение "Вид документа с кодом " + doc_type + " не найден.";
 
Иначе
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Физлицо = ФизЛицоОбъект.Ссылка;      
Если НоваяЗапись = 1 Тогда
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = Дата(1900,1,1);
                                Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период;
КонецЕсли;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументВид = ВидДокумента.Ссылка;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументСерия = doc_code;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументНомер = doc_number;
 
Если СтрДлина(doc_release_date)>0 Тогда
doc_release_date = Дата(Лев(doc_release_date,4),Сред(doc_release_date, 6, 2),Сред(doc_release_date, 9, 2) );
Иначе
doc_release_date = "";
КонецЕсли;
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументДатаВыдачи = doc_release_date;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументКемВыдан = organ;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);
 
КонецЕсли;
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
22.11.2024 - 05:02
Смотри также:
По загрузке из тхт, dbf, excell
после перехода на 1с8
Помогит отыскать поля ввода в табличном поле, очень много времени потерял бесполезноооо..

Re: Обновление периодических регистров сведений через веб-сервис

Lexusss
5 - 26.03.2009 - 10:58
(4) Уже 100пудово затер :-D

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
6 - 26.03.2009 - 11:01
Было и через менеджер. Не получилось. Делаю как в типовой ЗИК.
А что тут то не так? Я Селектю по 1 физлицу. Каким образом я затру все? :)
У меня ничего не обновляется.

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
7 - 26.03.2009 - 11:03
Добавил отбор (тока нахрена он я не понимаю). Не помогло. Запись выполняется. Но в системе ничего не меняется. :(
 
//Запись удостоверения личности
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ФизЛицо", ФизЛицоОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПаспортныеДанныеФизЛицСрезПоследних.Период,
| ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
| ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства
|ИЗ
| РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(, ФизЛицо = &ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить(), Выборка);
КонецЕсли;
    // запись в регистр паспортных данных
SetSyncDataResult = SetSyncDataResult + мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество();
                            НоваяЗапись = 0;
Если мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество() > 0 И
ЗначениеЗаполнено(мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период) Тогда
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Значение = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Физлицо;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Период.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Период.Значение = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период;
 
Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить();
НоваяЗапись = 1;
КонецЕсли;
 
ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.НайтиПоРеквизиту("КодИМНС",doc_type);
 
Если ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ПустаяСсылка() Тогда
 
ВызватьИсключение "Вид документа с кодом " + doc_type + " не найден.";
 
Иначе
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Физлицо = ФизЛицоОбъект.Ссылка;      
Если НоваяЗапись = 1 Тогда
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = Дата(1900,1,1);
                                Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период;
КонецЕсли;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументВид = ВидДокумента.Ссылка;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументСерия = doc_code;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументНомер = doc_number;
 
Если СтрДлина(doc_release_date)>0 Тогда
doc_release_date = Дата(Лев(doc_release_date,4),Сред(doc_release_date, 6, 2),Сред(doc_release_date, 9, 2) );
Иначе
doc_release_date = "";
КонецЕсли;
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументДатаВыдачи = doc_release_date;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументКемВыдан = organ;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);
 
КонецЕсли;

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
8 - 26.03.2009 - 11:16
Ну потер все на самом деле :))) Но обновить так и не получается. Помогите, пож.
 
//Запись удостоверения личности
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ФизЛицо", ФизЛицоОбъект.Ссылка);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПаспортныеДанныеФизЛицСрезПоследних.Период,
| ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
| ВЫРАЗИТЬ(ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан КАК СТРОКА(300)) КАК ДокументКемВыдан,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
| ПаспортныеДанныеФизЛицСрезПоследних.ДатаРегистрацииПоМестуЖительства
|ИЗ
| РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(, ФизЛицо = &ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ЗаполнитьЗначенияСвойств(мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить(), Выборка);
КонецЕсли;
    // запись в регистр паспортных данных
                            НоваяЗапись = 0;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Значение = ФизЛицоОбъект.Ссылка;
Если мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество() > 0 И
ЗначениеЗаполнено(мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период) Тогда
SetSyncDataResult = SetSyncDataResult + мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Период.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Период.Значение = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период;
Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность.Добавить();
НоваяЗапись = 1;
КонецЕсли;
 
ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.НайтиПоРеквизиту("КодИМНС",doc_type);
 
Если ВидДокумента = Справочники.ДокументыУдостоверяющиеЛичность.ПустаяСсылка() Тогда
 
ВызватьИсключение "Вид документа с кодом " + doc_type + " не найден.";
 
Иначе
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Физлицо = ФизЛицоОбъект.Ссылка;      
Если НоваяЗапись = 1 Тогда
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = Дата(1900,1,1);
                                Иначе
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период = мНаборЗаписейДокументаУдостоверяющегоЛичность[0].Период;
КонецЕсли;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументВид = ВидДокумента.Ссылка;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументСерия = doc_code;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументНомер = doc_number;
 
Если СтрДлина(doc_release_date)>0 Тогда
doc_release_date = Дата(Лев(doc_release_date,4),Сред(doc_release_date, 6, 2),Сред(doc_release_date, 9, 2) );
Иначе
doc_release_date = "";
КонецЕсли;
 
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументДатаВыдачи = doc_release_date;
мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументКемВыдан = organ;
SetSyncDataResult = SetSyncDataResult + мНаборЗаписейДокументаУдостоверяющегоЛичность.Количество();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);
 
КонецЕсли;

Re: Обновление периодических регистров сведений через веб-сервис

roma n
9 - 26.03.2009 - 11:20
- создать набор записей
- установить отбор
- прочитать набор записей (для нового не обязательно)
- дополнить/модифицировать записи набора записей
- записать набор записей

Интересные темы

odines.ru
22.11.2024 - 05:02
Смотри также:
не сохраняются изменения внесенные в табличную часть внешней обработкой
Как в 8.1 в запросе отобрать номенклатуру, наименование которой короче 10 символов?
Как сделать элемент формы активным?

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
10 - 26.03.2009 - 12:03
Как прочитать?

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
11 - 26.03.2009 - 12:05
Почему для непериодических такой проблемы нет?

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
12 - 26.03.2009 - 12:43
Даже не удаляется :((((
Посмотрите, пож, должно работать?
 
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Значение = ФизЛицоОбъект.Ссылка;
                                мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Использование = Истина;
                                мНаборЗаписейДокументаУдостоверяющегоЛичность.Прочитать();
SetSyncDataResult = SetSyncDataResult + мНаборЗаписейДокументаУдостоверяющегоЛичность[0].ДокументВид;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Удалить(0);
мНаборЗаписейДокументаУдостоверяющегоЛичность.Удалить();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);

Re: Обновление периодических регистров сведений через веб-сервис

roma n
13 - 26.03.2009 - 12:48
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Установить(ФизЛицоОбъект.Ссылка);
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);
======
И все у тебя удалится

Re: Обновление периодических регистров сведений через веб-сервис

Anonymous
14 - 26.03.2009 - 13:10
Нашел в чем оказывается проблема!!! Оказывается, если был инициализирован объект ФизлОбъект и после изменений регистра была произведена запись этого обхекта, то регистр остается прежним. Эта я тупил и про это все знали? Или это фича? :)
ФизЛ = Справочники.ФизическиеЛица.НайтиПоКоду("000002950");
ФизлОбъект = ФизЛ.ПолучитьОбъект();
мНаборЗаписейДокументаУдостоверяющегоЛичность = РегистрыСведений.ПаспортныеДанныеФизЛиц.СоздатьНаборЗаписей();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Использование = Истина;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Отбор.Физлицо.Значение = ФизЛ.Ссылка;
мНаборЗаписейДокументаУдостоверяющегоЛичность.Прочитать();
мНаборЗаписейДокументаУдостоверяющегоЛичность.Удалить(0);
мНаборЗаписейДокументаУдостоверяющегоЛичность.Записать(Истина);
                           ФизлОбъект.Записать();
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Как из 8.1 распечатать выписку банка Как в типовой бухгалтерии сотруднику дать доступ к двум организациям из 5? »
© 2009 Форум 1С: Одинэс.Ру