Каталог розробок для 1с підприємство

Виправлення помилки передачі мутабельном значення з клієнта на сервер

Шапка = Запрос.Виполніть (). Вибрати ();
Шапка.Следующій ();
ВиборкаСтрокТовари = Шапка.Товари.Вибрать ();

Поки ВиборкаСтрокТовари.Следующій () Цикл

Якщо НЕ ЗначеніеЗаполнено (ВиборкаСтрокТовари.Номенклатура) Тоді
продовжити;
КонецЕсли;

ОбластьМакета.Параметри.Заполніть (ВиборкаСтрокТовари);
ОбластьМакета.Параметри.НомерСтрокі = Ном;
ОбластьМакета.Параметри.Товар = ВиборкаСтрокТовари.Товар + ФормірованіеПечатнихФормСервер.ПредставленіеСерій (ВиборкаСтрокТовари);

Помилка виникала в момент коли оброблялася рядок: "ОбластьМакета.Параметри.Товар = ВиборкаСтрокТовари.Товар + ФормірованіеПечатнихФормСервер.ПредставленіеСерій (ВиборкаСтрокТовари);".
Я подивився ще раз опис мутабельном значення: "Передавати між клієнтом і сервером (в обидві сторони) можна тільки немутабельние значення (тобто значення яких не можуть змінюватися): примітивні типи, посилання, універсальні колекції, значення системних перерахувань, сховище значення. при спробі передати що-небудь інше - аварійне завершення клієнтського додатка (навіть, якщо передавати некоректний параметр намагається сервер). я був здивований універсальні колекції можна передавати, а рядок універсальної колекції немає. Тому я ре шив скористатися іншою універсальної колекцією, а саме Структурою. В результаті код вийшов такий:
Поки ВиборкаСтрокТовари.Следующій () Цикл

Якщо НЕ ЗначеніеЗаполнено (ВиборкаСтрокТовари.Номенклатура) Тоді
продовжити;
КонецЕсли;

Подання = Новий Структура ();
Представленіе.Вставіть ( "Характеристика", ВиборкаСтрокТовари.Характерістіка);
Представленіе.Вставіть ( "Серія", ВиборкаСтрокТовари.Серія);

ОбластьМакета.Параметри.Заполніть (ВиборкаСтрокТовари);
ОбластьМакета.Параметри.НомерСтрокі = Ном;
ОбластьМакета.Параметри.Товар = ВиборкаСтрокТовари.Товар + ФормірованіеПечатнихФормСервер.ПредставленіеСерій (Подання);

Так що якщо хто то буде стикатися з такою ж проблемою нехай знає, що рядок таблиці значень є мутабельном значенням і її (рядок) передавати не можна. Потрібно створити структуру.
Рішення ж моєї проблеми було: в функції "ФормірованіеПечатнихФормСервер.ПредставленіеСерій" перевірялося умова:

Якщо ЗначеніеЗаполнено (Виборка.Серія) Тоді

Потрібно було створити структуру, де ключем виступали значення перевірки умови (Характеристика і Серія), а значеннями ключа - Виступали значення Рядки даних властивостей. Як тільки це було виправлено друкована форма знову запрацювала так як раніше.