Имя: Пароль:
1C
1С v8
Запрос к внешнему источнику данных после записи данных
0 Dendroid92
 
02.03.17
12:29
Здравствуйте!
Записываю данные во ВнешнийИсточникДанных, после чего хочу проверить записались ли данные в таблицу, выполняю запрос (запись и проверка записи в одной процедуре), но не получаю данные, однако данные успешно записаны в таблицу. Я так понимаю, что запрос выполняется быстрее, чем записываются данные. Если сделать отдельную кнопку на форме с проверкой записи, то данные будут получены. Кто может подсказать по данному вопросу, может надо программно какую-то паузу делать после записи?
1 Naf2017
 
02.03.17
12:32
Тут от самих внешних данных зависит. Может там транзакция записи не подтверждена, а чтение идет в другой транзакции
2 Dendroid92
 
02.03.17
12:36
Для каждого Студент из Объект.Синхронизация Цикл
        Если Студент.Spec = "" Тогда
            НачатьТранзакцию();
            ВнешИст = ВнешниеИсточникиДанных.ВнешнийИсточникДанных3.Таблицы.mdl_user_info_data.СоздатьОбъект();
            ВнешИст.data = Студент.Направление.Наименование;
            ВнешИст.dataformat = 0;
            ВнешИст.fieldid = 2;
            ВнешИст.userid = Студент.UserId;
            ВнешИст.Записать();
            ЗафиксироватьТранзакцию();
            
            ВнешДанныеПоСтуд = ПолучитьДопИнфуПоПользователямMoodle(Студент.UserId);
            Для каждого Запись из ВнешДанныеПоСтуд Цикл
                Если Запись.fieldid = 2 Тогда
                    Студент.Spec = Запись.data;                
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;

Вроде ЗафиксироватьТранзацию() должно выполнить операцию и данные уже должны быть записаны или нет?
3 Dendroid92
 
02.03.17
12:59
(2) После записи ВнешИст.Ссылка - <Объект не найден>
4 Naf2017
 
02.03.17
13:21
ПолучитьДопИнфуПоПользователямMoodle ХЗ че там написано
5 Dendroid92
 
02.03.17
14:06
(4)
&НаСервере
Функция ПолучитьДопИнфуПоПользователямMoodle(UserId)
Запрос = Новый Запрос;    
Запрос.Текст = "ВЫБРАТЬ
                   |    mdl_user_info_data.data,
                   |    mdl_user_info_data.fieldid
                   |ИЗ
                   |    ВнешнийИсточникДанных.ВнешнийИсточникДанных3.Таблица.mdl_user_info_data КАК mdl_user_info_data
                   |ГДЕ
                   |    mdl_user_info_data.userid = &userid";
Запрос.УстановитьПараметр("userid", UserId);

возврат Запрос.Выполнить().Выгрузить();
КонецФункции
6 Dendroid92
 
02.03.17
14:21
Прошу прощения, все работает, не работало из-за невнимательности в запросе параметр передавал как строку, а нужно было как число, поэтому и не находило. Тему можно закрыть.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс