Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 мая 2025, 23:36

В реквизит документа не записывается значение структуры.

Автор micahbell, 18 апр 2025, 12:55

0 Пользователей и 1 гость просматривают эту тему.

micahbell

Я хочу для документов у которых УИД(УникальныйИдентификатор) точно такой же как и в СтруктураJSON сделать изменения. И у меня в отладчике совпадают значения, но при этом у меня почему-то
ничего не происходит. В СтруктуреJSON УИД это строка а в запроса УникальныйИдентификатор. отладчик.PNG

&НаСервере
Процедура Команда1НаСервере()
  СтруктураJSON = Новый Структура;
  СтруктураJSON.Вставить("УИД", "e6dec04d-9856-11ef-8aac-00d861ffee11");
  Запрос = Новый Запрос;
  Запрос.Текст =
    "ВЫБРАТЬ
    |  УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ВедомостьПосещения.Ссылка) КАК УИД
    |ИЗ
    |  Документ.ВедомостьПосещения КАК ВедомостьПосещения";
 
  РезультатЗапроса = Запрос.Выполнить();
 
  ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

 
    ДокументЗаказ = Документы.ВедомостьПосещения.Выбрать();
 
  Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   
        Если ВыборкаДетальныеЗаписи.УИД = СтруктураJSON.УИД Тогда
             НужныйДокумент = ДокументЗаказ.ПолучитьОбъект();
      НужныйДокумент.ДанныеПодписи = СтруктураJSON.УИД;
      НужныйДокумент.Записать();
    КонецЕсли;
  КонецЦикла 
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
  Команда1НаСервере();
КонецПроцедуры

Выгрузка
Приложение.dt

Максим75

Уникальный идентификатор и строка- это разное.

antoneus

Потому что уникальный идентификатор - это не строка и сравнивать их бессмысленно. И вообще, код нерабочий по очень многим причинам)

А делать надо так:

Ссылка = Документы.ВедомостьПосещения.ПолучитьСсылку(Новый УникальныйИдентификатор(СтруктураJSON.УИД));
ДокОбъект = Ссылка.ПолучитьОбъект();
ДокОбъект.ДанныеПодписи = СтруктураJSON.УИД;
ДокОбъект.Записать()

micahbell

antoneus, А если нельзя их сравнивать то как мне тогда записать данные только в нужные документы(опять же сравнение обязательно через УИД долнжо происходить). И ещё ошибку выдаёт
Значение не является значением объектного типа (ДанныеПодписи)
{Обработка.Обработка1.Форма.Форма.Форма(22)}:      ДокОбъект.ДанныеПодписи = СтруктураJSON.УИД;
{Обработка.Обработка1.Форма.Форма.Форма(29)}:   Команда1НаСервере();

&НаСервере
Процедура Команда1НаСервере()
СтруктураJSON = Новый Структура;
СтруктураJSON.Вставить("УИД", "e6dec04d-9856-11ef-8aac-00d861ffee11");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|  УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ВедомостьПосещения.Ссылка) КАК УИД
|ИЗ
|  Документ.ВедомостьПосещения КАК ВедомостьПосещения";

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();


ДокументЗаказ = Документы.ВедомостьПосещения.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Ссылка = Документы.ВедомостьПосещения.ПолучитьСсылку(Новый УникальныйИдентификатор(СтруктураJSON.УИД));
ДокОбъект = Ссылка.ПолучитьОбъект();
ДокОбъект.ДанныеПодписи = СтруктураJSON.УИД;
ДокОбъект.Записать();
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере();
КонецПроцедуры

antoneus

Не надо в цикле это делать. Я написал код полностью.

&НаСервере
Процедура Команда1НаСервере()
    УИД = Новый УникальныйИдентификатор("e6dec04d-9856-11ef-8aac-00d861ffee11");
    Ссылка = Документы.ВедомостьПосещения.ПолучитьСсылку(УИД);
    ДокОбъект = Ссылка.ПолучитьОбъект();
    ДокОбъект.ДанныеПодписи = УИД;
    ДокОбъект.Записать();
КонецПроцедуры

В переменной Ссылка в отладчике что?

micahbell


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск