Имя: Пароль:
1C
1С v8
Метод "ВставитьОбласть" - отрабатывает по разному...
0 1Садовник
 
20.04.18
16:18
Из СП:
Описание:
Вставляда возникает ошибка.
ет копию исходной области табличного документа в область-приемник.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:
Если размеры исходной области не соответствуют результирующей области, то при выполнении мето

Пример (управляемые формы, процедура в модуле формы внешней обработки):

&НаСервере
Процедура ТестНаСервере()
    Сообщение = Новый СообщениеПользователю;
    ТабДокИсходный = Новый ТабличныйДокумент;
    ТабДокНовый    = Новый ТабличныйДокумент;
    ОбластьИсходная = ТабДокИсходный.Область(1,1,1,5);
    ОбластьПриемник = ТабДокИсходный.Область(1,1,1,3);
    Попытка
        ТабДокНовый.ВставитьОбласть(ОбластьИсходная, ОбластьПриемник);
        Сообщение.Текст = "Получилось вставить 5 колонок в 3";
    Исключение
        Сообщение.Текст = "Ошибка разный размер областей";
    КонецПопытки;
    Сообщение.Сообщить();
КонецПроцедуры

И вот вопрос - почему при разных размерах областей (источник и приемник) ошибка НЕ возникает в тонком клиенте для файловой базы. И также НЕ возникает для тонкого и толстого клиента клиент-серверной базы.
Тестировал на платформах  8.3.11.3034, 8.3.10.2466 (версия по всей видимости не влияет).

Сообщение "Ошибка разный размер областей" можно увидеть только при запуске в толстом клиенте файловой базы.
1 1Садовник
 
20.04.18
16:20
ОбластьПриемник = ТабДокИсходный.Область(1,1,1,3);

можно заменить на

ОбластьПриемник = ТабДокНовый.Область(1,1,1,3);

не влияет на результат
2 manuuu
 
20.04.18
16:20
Возможно макет не тот устанавливается?
3 1Садовник
 
20.04.18
16:29
(2) Макет не причем, его нет в обработке.
4 singlych
 
20.04.18
16:34
Не ошибка не возникает, а сообщение не сообщается.
5 1Садовник
 
20.04.18
16:53
(4) Отрабатывает метод в тонком клиенте и возникает ошибка в толстом вот пример готовый:

&НаСервере
Функция ТестНаСервере()
    Сообщение = Новый СообщениеПользователю;
    ТабДокИсходный = Новый ТабличныйДокумент;
    ТабДокНовый    = Новый ТабличныйДокумент;
    ТабДокИсходный.Область(1,1).Текст = "ячейка1";
    ТабДокИсходный.Область(1,3).Текст = "ячейка3";
    ОбластьИсходная = ТабДокИсходный.Область(1,1,1,3);
    ОбластьПриемник = ТабДокНовый.Область(1,1,1,5);
    Попытка
        ТабДокНовый.ВставитьОбласть(ОбластьИсходная, ОбластьПриемник);
        Сообщение.Текст = "Получилось вставить 3 колоноки в 5";
    Исключение
        Сообщение.Текст = "Ошибка";
    КонецПопытки;
    Сообщение.Сообщить();
    Возврат ТабДокНовый;
КонецФункции


&НаКлиенте
Процедура Тест(Команда)
    ТД = ТестНаСервере();
    ТД.Показать();
КонецПроцедуры
6 singlych
 
20.04.18
16:58
Убери попытку и повтори.
7 1Садовник
 
20.04.18
17:02
(6) убрал. В тонком метод молча отработал. Вот результат:
http://ipic.su/img/img7/fs/1.1524232942.png