|   |   | 
| 
 | Передать ТЗ с сервера на клиент | ☑ | ||
|---|---|---|---|---|
| 0
    
        John83 16.03.22✎ 22:16 | 
        УПП 1.3 толстый клиент
 Нужно из привилегированного модуля передать ТЗ в модуль внешней обработки заполнения ТЧ. Пишу в функции прив. модуля тз = ОбщегоНазначения.ТаблицаЗначенийВМассив(НаборДвижений); Возврат тз; Но ругается Попытка передачи с сервера клиенту мутабельного значения 2-го параметра метода Это же массив. Что ему не нравится? | |||
| 1
    
        VladZ 16.03.22✎ 22:44 | 
        (0) Не нужно передавать ТЗ с сервера на клиент.     | |||
| 2
    
        Мимохожий Однако 16.03.22✎ 23:16 | 
        из ТЗ в массив. Передать. А потом из массива в ТЗ )     | |||
| 3
    
        John83 16.03.22✎ 23:27 | 
        (2) ОбщегоНазначения.ТаблицаЗначенийВМассив(НаборДвижений)
 оно так и делает, по факту передается массив. Переменную неудачно обозвал | |||
| 4
    
        sandal_r 16.03.22✎ 23:59 | 
        где-то внутри НаборДвижений лежит мутабельный объект     | |||
| 5
    
        Said_We 17.03.22✎ 00:46 | 
        Объекты бывают мутабельные и иммутабельные. Значение иммутабельного объекта нельзя изменить после того, как он был создан, а значение мутабельного можно.
 1С решило что массив иммутабельный объект, а ТЗ мутабельный. Логики тут можно не искать. Просто где нарисовали возможность передачи с клиента и обратно, назвали иммутабельным объектом. А где нет, там значит мутабельный объект. Как только нарисуют передачу ТЗ с клиента на сервер и обратно (грозятся каждый раз более 10 лет), то и ТЗ перестанет быть мутабельным объектом. | |||
| 6
    
        OldCondom 17.03.22✎ 01:53 | 
        Нет никакого смысла передавать ТЗ на клиент. 
 На клиенте рисуем и складываем 2+2, все. | |||
| 7
    
        Chai Nic 17.03.22✎ 07:02 | 
        (5) По-моему тут дело не в мутабельности, а во-первых в сериализуемости, во-вторых в совместимости с джаваскриптом.     | |||
| 8
    
        John83 17.03.22✎ 10:58 | 
        (4) так и есть - ссылка на документ     | |||
| 9
    
        timurhv 17.03.22✎ 11:10 | 
        (8) Ссылка - не мутабельный.
 НаборДвижений - тут что? Судя по названию - не таблица значений. НаборДвижений.Выгрузить() ? | |||
| 10
    
        acht 17.03.22✎ 12:20 | 
        (7) > в совместимости с джаваскриптом.
 И животноводство! | |||
| 11
    
        John83 17.03.22✎ 12:24 | 
        (9) НаборДвижений = Документы.АктСверкиВзаиморасчетов.ПустаяСсылка().ПоДаннымОрганизации.Выгрузить()     | |||
| 12
    
        Малыш Джон 17.03.22✎ 13:28 | 
        (11) Выгрузить() - это ТЗ     | |||
| 13
    
        John83 17.03.22✎ 13:38 | 
        (12) фыва = ОбщегоНазначения.ТаблицаЗначенийВМассив(НаборДвижений);
 возврат фыва | |||
| 14
    
        Малыш Джон 17.03.22✎ 13:44 | 
        (13) ну значит, как и писали выше - в одной из колонок таблицу - мутабельное значение     | |||
| 15
    
        Малыш Джон 17.03.22✎ 13:45 | 
        (13) Попробуй выгружать не все сразу, а добавлять по колонке и пробовать, на какой споткнется     | |||
| 16
    
        John83 17.03.22✎ 13:52 | 
        (15) что тут мутабельное?
 https://ibb.co/6XxWRPd | |||
| 17
    
        Малыш Джон 17.03.22✎ 13:57 | 
        (16)  ¯\_(ツ)_/¯     | |||
| 18
    
        Малыш Джон 17.03.22✎ 13:58 | 
        (16) как говорят герои: никто, кроме тебя. 
 Пробуй (15), потом нам расскажешь, что именно было. | |||
| 19
    
        John83 17.03.22✎ 14:15 | 
        сделал вообще
 НаборДвижений.Очистить(); НаборДвижений.Свернуть("Дата","Дебет, Кредит"); тз = ОбщегоНазначения.ТаблицаЗначенийВМассив(НаборДвижений); Возврат тз; т.е. пустая тз и простые типы - все равно {ВнешняяОбработка.Комплектация_ЗаполниениеДолейСтоимости.МодульОбъекта(59)}: Ошибка при вызове метода контекста (ЗаполнитьПоДаннымБухгалтерскогоУчета) фыва = крассПривилегированныйМодуль.ЗаполнитьПоДаннымБухгалтерскогоУчета(СоотвОбеъкт, ФильтрСписокСчетов, МетаданныеПоДокументам); по причине: Попытка передачи с сервера клиенту мутабельного значения 2-го параметра метода ЗаполнитьПоДаннымБухгалтерскогоУчета (). | |||
| 20
    
        John83 17.03.22✎ 14:15 | 
        и почему 2го параметра?     | |||
| 21
    
        1Сергей 17.03.22✎ 14:22 | 
        (20) ну а что в ФильтрСписокСчетов?     | |||
| 22
    
        John83 17.03.22✎ 14:29 | 
        (21) ФильтрСписокСчетов = Новый массив();
 внутри счета БУ | |||
| 23
    
        1Сергей 17.03.22✎ 14:32 | 
        (22) точно не реквизит объекта или формы?     | |||
| 24
    
        Малыш Джон 17.03.22✎ 14:33 | 
        (19) а СоотвОбеъкт - это чисто случайно не соответствие объектов?     | |||
| 25
    
        John83 17.03.22✎ 14:34 | 
        (24)     СоотвОбеъкт = Новый Соответствие();
 Для Каждого рек Из Метаданные.Документы.АктСверкиВзаиморасчетов.Реквизиты Цикл СоотвОбеъкт.Вставить(рек.Имя, Объект[рек.Имя]); КонецЦикла; | |||
| 26
    
        John83 17.03.22✎ 14:36 | 
        (23)     ФильтрСписокСчетов = Новый массив();
 Для каждого СтрокаСчета Из Объект.СписокСчетов Цикл Если НЕ ЗначениеЗаполнено(СтрокаСчета.Счет) или СтрокаСчета.УчаствуетВРасчетах = Ложь Или Найти(СтрокаСчета.Счет.Код, 60)>0 Тогда Продолжить; Иначе ФильтрСписокСчетов.Добавить(СтрокаСчета.Счет); КонецЕсли; КонецЦикла; | |||
| 27
    
        Малыш Джон 17.03.22✎ 14:45 | 
        (25) мммм, какая неожиданность...
 объект - мутабельный | |||
| 28
    
        John83 17.03.22✎ 14:58 | 
        в прив. модуле сделал
 Функция ЗаполнитьПоДаннымБухгалтерскогоУчета(Знач Объект, Знач ФильтрСписокСчетов, Знач МетаданныеПоДокументам) Экспорт Не знаю, на сколько правильно, но заработало Всем спасибо! | |||
| 29
    
        ДедМорроз 17.03.22✎ 21:55 | 
        Массив содержит только значения,а Т.З.в обычных формах - значения и оформление,вот последнее передать нельзя,т.к.оно не сериализуется.
 И именно из-за этих косяков в управляемых формах Т.З.нет на клиенте,т.к.оформление для web-клиента не придумали,а сделать Т.З.без оформления было стыдно. Хотя,ДанныеФормыКоллекция это и есть Т.З.и некоторая часть оформления,а другая передается в составе элементов формы. | |||
| 30
    
        acht 17.03.22✎ 23:06 | 
        (29) > Массив содержит только значения,а Т.З.в обычных формах - значения и оформление
 https://www.youtube.com/watch?v=OGsHshpYkiU | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |