кто нибудь сталкивался с ошибкой получения УникальныйИдентификатор() ссылки на веб- и тонком клиенте (версия 8.2.15.301)? Исправлена ли она в новых релизах платформы?
Следующий код 10 раз для сервера и 10 раз для клиента выводит одно и то же значение: 865416a7-6833-4b1d-8015-a33b2eabf7d0
Код сериализует таблицу значений в массив структур и возвращает клиенту:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Массив = ВозвратитьМассивСсылок();
Для каждого строка из Массив цикл
Сообщить("" + строка.Ссылка.УникальныйИдентификатор());
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Массив = ВозвратитьМассивСсылок();
Для каждого строка из Массив цикл
Сообщить("" + строка.Ссылка.УникальныйИдентификатор());
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ВозвратитьМассивСсылок()
ЗапросТекст = "ВЫБРАТЬ ПЕРВЫЕ 10
| Справочник.Ссылка КАК Ссылка,
| Справочник.Наименование
|ИЗ
| Справочник.Номенклатура КАК Справочник";
Запрос = Новый Запрос(ЗапросТекст);
object = Запрос.Выполнить().Выгрузить();
result = new Array();
resultRow = new Structure();
for each column in object.Columns do
resultRow.Insert(column.Name);
enddo;
for each row in object do
FillPropertyValues(resultRow, row);
result.Add(resultRow);
enddo;
return result;
(1) У него Ссылка - это ключ структуры, которая является элементом массива
А 10 раз одно и то же - потому что в массиве 10 раз одна и там же структура со значением по ключу Ссылка, равным последнему значению из результата запроса
(8) пиши на русском, тут тебе не пиндостан - от випендрежа и не воткнул
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший