arefaste/1C_Forums huggingface dataset:
как расположить значения переключателя не в ряд, а в столбик? не могу найти свойство нужное, справка и гугл не помогают
---
Вы о чем люди :)
В свойствах элемента есть реквизит "количество колонок" (вроде так), так там нужно играться ;) Точнее установить - 1.
---
Sherdrada, расположить их в группе с горизонтальной группировкой.
---
Prikum, не работает
---
Sherdrada, картинку группы выложи, чтобы было видно настройки
---
Prikum,
---
Sherdrada, а если поменять на вертикальное? или нужно еще как то?
---
Вы о чем люди :)
В свойствах элемента есть реквизит "количество колонок" (вроде так), так там нужно играться ;) Точнее установить - 1.
---
dj_serega, во, точно. спасибо. я почему-то думала что это ограничит количество значений
---
Sherdrada, Сам когда-то игрался. Но "тыканье" помогло =)
---
dj_serega, век живи, век учись.
---
сть реквизит "количество колонок" (вроде так), так там нужно играться ;) Точнее установить - 1.
Спасибо!!! работает!
---
буду знать, спс)
Здравствуйте форумчане. Столкнулся со странной проблемой. Обновили утром сервер, на клиенте платформу тоже обновил. Часть баз запускается, часть пишет про несоответствие версий клиента и сервера. Сервер у нас один, не понимаю как такое может быть.
---
помимо новых стоят старые платформы и 1с лаунчер не всегда корректно выбирает нужную платформу. Снесите все старые платформы
---
открыть список баз, выбрать нужную базу. Изменить. Далее. Проверить, что указано в свойстве "Версия 1С:Предприятие"
---
Стоит 8.3, она у нас уже много лет как 8.3, в настройках используемые версии вообще не указаны если что
---
значит проверить, что на клиенте новая версия все же установлена и запуск клиента осуществляется по ярлыку ссылающемуся на 1cestart.exe, а не на конкретную версию 1cv8c.exe
---
Другие базы с того ярлыка запускаются
---
еще проверить, что установили ту же разрядность клиента, что была. Если другая (установили 64 бит), то и ярлык запуска должен быть из него, а не от 32 бит
---
помимо новых стоят старые платформы и 1с лаунчер не всегда корректно выбирает нужную платформу. Снесите все старые платформы
---
На клиенте или на сервере?
---
Помогло, спасибо
---
Или как в (4) сказали правильно может происходить. В любом случае снесите все старые платформы и будет счастье
---
Может другие файловые?
---
У нас только серверные, на клиенте даже ключей нет
---
На клиенте
Добрый вечер всем. Прошу помощи с запросом.
Есть справочник "СопутсвующиеТовары" в нем один реквизит - ГруппаНоменклатуры (Номенклатура)
и одна табличная часть "СопутсвующиеТоварыДляГруппы", в ТЧ реквизит СопутствующийТоварИлиГруппа (Номенклатура)
Коллизии, когда реквизит шапки - группа и входит в ТЧ исключены
Задача получить выборку следующего вида:
ГруппаНоменклатуры
       - элементы номенклатуры входящие в ТЧ (т.е. или непосредственно элементы из ТЧ, или элементы находящиеся в иерархии групп присутвующих в ТЧ)

Вот вроде бы совсем просто, но мозг сломал, что и с чем, и по какому правилу должно соединяться
---
можно циклом пройтись по справочнику и программно создать текст запроса типа "... Объединить.."
---
выгрузить элементы ТЧ в массив, в запросе установить параметр с этим массивом, условие в запросе В Иерархии (&Массив)
---
если бы для одного элемента справочника нужно было вывести, то конечно, так. Но нужно для всех элементов. В этом и проблема
---
Вам в (1) ответили, 1 запросом никак, тут нужно 2 запроса - 1й вытащить все элементы из ТЧ, вторым получить список по условию в иерахии.
Либо, если уровень иерархии ограничен, то можно выполнить соединение по полю Родитель, Родитель.Родитель, Родитель.Родитель
---
Все равно не понятно. Данные нужно получить в ОДНОЙ выборке, неважно сколько будет запросов. Я хочу избежать запроса в цикле, и не понимаю как это можно сделать. Приведенный пример ничего не объясняет
---
Не очень понял если честно. Можете выкладывать скрины?
---
Стуктура справочника, скрин во вложении.
В реквизите Табличной части- Номенклатура могут быть и элементы и группы.
---
Нужно получить выборку с ГруппамиНоменклатуры (рекв.шапки справочника) и СО ВСЕМИ элементами справочника номенклатуры входящие в иерархию табл.части
---
можно циклом пройтись по справочнику и программно создать текст запроса типа "... Объединить.."
---
спасибо, идею понял. Она приходила в голову с самого начала, но думал что есть какой то другой, более элегантный подход
Есть ли такие любители извращений? Просто у меня задача переделать расчет себестоимости. Но мыслей мало.

Ибо расчет в рознице это так еще штучка. Короче она не устраивает владельцев бизнеса, и хотят как в семерке было. Ну или в Ут 10.3

Я понимаю, что лучше взять полноценную программу. Но тут нужно именно в рознице. Буду рад советам.
---
я делал подобный расчет для УТ 11, ничего сверхъестественного, работа на несколько дней. Проектировать надо по месту, смотреть, что используется, что нужно, что не нужно. Для УТ 10 тоже делал, но более сложную систему, в общем это надо смотреть и проектировать для конкретного случая.
Плюс регламенты - закрытие месяца, перепроведение документов для правильного списания партий, если что-то делается задним числом. Возможно, понадобится проверка на отрицательные остатки по партиям при проведении документов. В общем аккуратно вдумчиво сделать и будет работать потом годами без проблем.
---
Но мыслей мало.

Ибо расчет в рознице это так еще штучка. Короче она не устраивает владельцев бизнеса, и хотят как в семерке было. Ну или в Ут 10.3
Что именно не устраивает?
---
Ну раз как в 7.7 то наверн партии хотят
---
Партий там нет и не будет. Делайте обмен с УТ(10.3 - 11.4) и там смотрите свою себестоимость. А вообще много таких руководителей которые хотят из Розницы сделать Тис7.7. ....А еще в нет нет валюты.....
---
пусть торговлю берут. видели уже таких клиентов, сами не понимают что такое партии.
---
Можно через расширение долго доделывать... Но это того не стоит, лучше переходите в ут
---
Берешь и делаешь. Как в 10.3 например. Регистр партий, движения приход расход, остаток. Ничего особенно невозможного в этом нет, если аккуратно сделать, будет внятный, простой и понятный учет. Самое сложное в нем это правильная обработка исправлений задним числом, на чем собственно 1С и сломалась и так и не починилась.
"Полноценной" программы у 1С сейчас нет. Сделать свой разумное решение, самое дешевое и самое результативное.
---
Да я примерно так и думаю сделать. Был интересен опыт других. Но как я понимаю, мало кто так заморачивается.
---
я делал подобный расчет для УТ 11, ничего сверхъестественного, работа на несколько дней. Проектировать надо по месту, смотреть, что используется, что нужно, что не нужно. Для УТ 10 тоже делал, но более сложную систему, в общем это надо смотреть и проектировать для конкретного случая.
Плюс регламенты - закрытие месяца, перепроведение документов для правильного списания партий, если что-то делается задним числом. Возможно, понадобится проверка на отрицательные остатки по партиям при проведении документов. В общем аккуратно вдумчиво сделать и будет работать потом годами без проблем.
---
Согласен. Спасибо за хороший и добрый совет.
Добрый день.
При отправке в утм 4 версии ттн или акт подтверждения 4 формата выдает вот такую ошибку на рабочем контуре

{"timestamp":"2021-04-21T07:06:09.508+00:00","status":405,"error":"Method Not Allowed","message":"","path":"/"}

Если отправляем на тестовый контур ошибок нет
---
нашел сам. забыл обновить справочник "виды объектов егаис"
---
Добрый день. Много клиентов уже перешло на 4?
---
клиентов нет. т.к. 1с еще не реализовала данный функционал. много поставщиков перешло
---
нашел сам. забыл обновить справочник "виды объектов егаис"
Добрый день. Добавляю в справочник "ХарактеристикиНоменклатуры" новый реквизит "Артикул" - типа строка. Формы не трогаю, форма элемента открывается нормально а вот форма ПомошникНового выдает ошибку "Поле объекта не обнаружено (Артикул)".
Спотыкается на

```1c
    Для Каждого НастройкаРеквизита Из НастройкиВидимостиПоТипу Цикл
    Элементы[НастройкаРеквизита.Ключ].Видимость = НастройкаРеквизита.Значение.Использование;
    КонецЦикла;
```

В структуре "НастройкиВидимостиПоТипу" Артикул есть и он идентичен например с "НаименованиеПолное".
Не пойму в чем причина.
---
так если формы не трогаете, то логично, что в "Элементы[НастройкаРеквизита.Ключ]" будет ошибка. Либо на форму выводить, либо из НастройкиВидимостиПоТипу убирать артикул
---
Для потомков:
В расширение добавляем реквизит на форму при создании

```1c
    &НаСервере
    Процедура Расш1_ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)

    Поле = Элементы.Добавить("Артикул", Тип("ПолеФормы"), Элементы.Шапка);
    Поле.ПутьКДанным = "Объект.Артикул";
    Поле.Вид = ВидПоляФормы.ПолеВвода;

    КонецПроцедуры
```
---
так если формы не трогаете, то логично, что в "Элементы[НастройкаРеквизита.Ключ]" будет ошибка. Либо на форму выводить, либо из НастройкиВидимостиПоТипу убирать артикул
---
Понял логику. А как то можно решить расширением?
---
вывести на форму артикул аналогично НаименованиеПолное, или в цикле:
Для Каждого НастройкаРеквизита Из НастройкиВидимостиПоТипу Цикл
    Если НастройкаРеквизита.Ключ = "Артикул" Тогда
        Продолжить;
    КонецЕсли;
    Элементы[НастройкаРеквизита.Ключ].Видимость = НастройкаРеквизита.Значение.Использование;
КонецЦикла;
или при передаче параметров в форму помощника убрать Артикул из НастройкиВидимостиПоТипу
---
мож лучше доп. реквизитом сделать, а не корячить конфу?
---
Думал добавить реквизитом в конфу, а потом обрабатывать в расширение. Так вроде бы проще потом с ним работать, выводить в печатные формы например.
---
И проверять уникальность
---
тогда, возможно, это не первый такой артефакт
---
Для потомков:
В расширение добавляем реквизит на форму при создании

```1c
    &НаСервере
    Процедура Расш1_ПриСозданииНаСервереПеред(Отказ, СтандартнаяОбработка)

    Поле = Элементы.Добавить("Артикул", Тип("ПолеФормы"), Элементы.Шапка);
    Поле.ПутьКДанным = "Объект.Артикул";
    Поле.Вид = ВидПоляФормы.ПолеВвода;

    КонецПроцедуры
```
Как можно 2 отчета СКД объединить в одном из них? без формы
Что бы отчет 1 и 2 были раздельными друг от друга путем булева.
К примеру есть отчет "1" и в нем должна быть галочка которая позволяла бы формировать отчет один или вместе со "2".
---
в СКД на закладке настройки, слева, есть табличка с вариантами отчета, там можно задать несколько вариантов с разными представлениями данных
1 и/или 2 отчета ит.д.
---
Сообщение было скрыто модератором.
---
в СКД на закладке настройки, слева, есть табличка с вариантами отчета, там можно задать несколько вариантов с разными представлениями данных
1 и/или 2 отчета ит.д.
Добрый день, есть
```1c
    Процедура Нужная() Экспорт
```
 в модуле формы ВажныеДокументы эту процедуру нужно вызвать в модуле формы ДокументыНеТакВжные как можно это сделать ?
---
В форме "ДокументыНеТакВжные":

```1c
    Форма = ПолучитьФорму("Документ.ВажныеДокументы.Форма.ВажныеДокументы");
    Форма.Нужная();
```
---
Функция ПолучитьФорму недоступна на сервере, поэтому и ошибка.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Вызов метода выполняет обращение к серверу.
В форме "ДокументыНеТакВжные" должен быть вызов клиентской процедуры:

```1c
    &НаКлиенте
    Процедура ВызовДругойФормы()

    Форма = ПолучитьФорму("Документ.ВажныеДокументы.Форма.ВажныеДокументы");
    Форма.Нужная();

    КонецПроцедуры
```
---
ПолучитьФорму, ПолученнаяФорма.ВызовПроцедуры
---
В форме "ДокументыНеТакВжные":

```1c
    Форма = ПолучитьФорму("Документ.ВажныеДокументы.Форма.ВажныеДокументы");
    Форма.Нужная();
```
---
Прописал в форме "ДокументыНеТакВжные" странно но выдаёт ошибку {Документ.ВажныеДокументы.Форма.ВажныеДокументы.Форма(19,10)}: Процедура или функция с указанным именем не определена (ПолучитьФорму)
 Форма = <<?>>ПолучитьФорму("Документ.ВажныеДокументы.Форма.ВажныеДокументы"); (Проверка: Сервер)
---
Функция ПолучитьФорму недоступна на сервере, поэтому и ошибка.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение (клиент).
Вызов метода выполняет обращение к серверу.
В форме "ДокументыНеТакВжные" должен быть вызов клиентской процедуры:

```1c
    &НаКлиенте
    Процедура ВызовДругойФормы()

    Форма = ПолучитьФорму("Документ.ВажныеДокументы.Форма.ВажныеДокументы");
    Форма.Нужная();

    КонецПроцедуры
```
---
Это из серии "Как мне из B попасть в C". В целом, любые советы будут вредными без полной картины.
Доброе утро, светлые головы!

В 8.2 (обычные формы) мне нужно закрасить ячейку (Статус) в таблице значений (Таблица) на форме, если в этой ячейке выбрано определенное значение из перечисления.

```1c
    Процедура ТаблицаСтатусПриИзменении(Элемент)
    Если Элемент.Значение = Перечисления.СтатусыПередачиОригиналовДоговоров.OK Тогда
    Элемент.ЦветФона = WebЦвета.СветлоЗеленый;
    КонецЕсли;
    КонецПроцедуры
```

Сейчас с этим кодом закрашивания не происходит. Подскажите, где я не догоняю?
---
Если я правильно помню ОФ, то там надо либо при выводе строки либо при получении данных работать с оформлением строки.
---
ПриПолученииДанных / ПриВыводеСтроки
Лучшие кошероведы рекомендуют и настоятельно советуют красить именно в этих процедурах.
---
Для примера. В форме списка документа.

```1c
    Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Попытка
    Если ДанныеСтроки.Брутто = 0 Тогда
    ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЗеленый;
    Иначе
    ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
    КонецЕсли;
    Исключение
    КонецПопытки;

    КонецПроцедуры
```
---
Если я правильно помню ОФ, то там надо либо при выводе строки либо при получении данных работать с оформлением строки.
---
ПриПолученииДанных / ПриВыводеСтроки
Лучшие кошероведы рекомендуют и настоятельно советуют красить именно в этих процедурах.
---
Скажите, а кто такие кошероведы?
---
Те, которые заведуют кашрутом и определяют, что кошерно, а что нет.
---
Для примера. В форме списка документа.

```1c
    Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Попытка
    Если ДанныеСтроки.Брутто = 0 Тогда
    ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЗеленый;
    Иначе
    ОформлениеСтроки.ЦветФона = WebЦвета.Белый;
    КонецЕсли;
    Исключение
    КонецПопытки;

    КонецПроцедуры
```
---
Спасибо, незнакомый друг!
Здравствуйте форумчане. Возникла сложность с регламентным заданием. Задание запускает обработку по выгрузке большого файла xml, запускается ночью. Файл xml представляет собой выборку данных из регистра. Периодически это задание срабатывает некорректно, выгружается не все данные, при этом если запустить выгрузку вручную то все отрабатывает нормально. Журнал регистрации показывает всегда, что задание успешно выполнено.

Не знаю куда копать в поисках ошибки, прошу помощи.
---
Технологический журнал включить по событиям EXCP, чтобы отловить нештатный перезапуск rphost-ов.
---
Как вы определяете, что выгрузились не все данные?
---
Данные выгружаются для учетной системы qlik, периодически там пропадает 2021 год. Но я конечно для проверки смотрю и сам файл через excel, чтобы убедится в том, что это не ошибка приемника. Складывается впечатление, что скрипт в ходе выгрузки обрывается и часть данных в файл не попадает, то с начала марта, то с начала февраля.
---
данные в эксель выгружаются поячеечно?
выполняйте логирование выгрузки.

быть может просто перезапускаются rphost.
---
Данные грузятся в xml, я просто смотрю xml через excel(так удобнее). Как вы предлагаете сделать логирование? Я ранее такого не делал.
---
рядом в файлик *.txt
Уровень детализации логирования - выберите самостоятельно :)

я бы начал с того, что выводил количество записей к выгрузке и периодически вывдил бы количество выгруженных записей.
---
А, просто по ходу отработки скрипта записать другой файлик поменьше. Ну это можно сделать. Правда ошибка не каждый день возникает, так что логов пока не будет, может есть еще советы?
---
Технологический журнал включить по событиям EXCP, чтобы отловить нештатный перезапуск rphost-ов.
---
Хорошо, посмотрим, что это покажет.
---
Кажется нашел

"Ошибка совместного доступа к файлу" из логов

У меня на сервере есть копия основной базы и там точно такое же регламентное задание, они одновременно в один файл пытались сделать запись данных. Посмотрим что будет, когда я отключу лишнее регламентное.
---
В копиях, как правило, отключают регламентные задания вообще, либо включают их точечно.
---
Да я забыл про нее, она для какой-то разовой работы была подключена.
---
Флаг в виде файла кидать в тот же каталог, что и выгрузка идет. И кидать этот флаг в случае если все прошло до конца. Регламентное задание проверяет наличие флага время от времени, если его нет, то грузит файл.

После того как данные выгружены и получены флаг удалять.
Прошу помочь с решением задачи.
Необходимо найти все целые делители введенного числа. Никак не могу сформировать алгоритм такого вычисления.
---
Думаю нужно проходиться циклом, что-то типа:

```1c
    Делитель = 1;
    Делимое = 35;
    Пока Делитель <= 100 цикл
    Если Делимое%Делитель = 0
    тогда
    Сообщить(Делитель);
    КонецЕсли;
    Делитель = Делитель+1;
    КонецЦикла;
```

Мне это видится как-то так)
---
Думаю нужно проходиться циклом, что-то типа:

```1c
    Делитель = 1;
    Делимое = 35;
    Пока Делитель <= 100 цикл
    Если Делимое%Делитель = 0
    тогда
    Сообщить(Делитель);
    КонецЕсли;
    Делитель = Делитель+1;
    КонецЦикла;
```

Мне это видится как-то так)
---
Спасибо, помогло. Я новичок и вообще запутался. а говорили 1С простой.
ах да, то что делитель вы указали <=100, это же просто ради примера и указать можно любое число?
---
<=100 это условие для цикла он будет выполняться пока делитель меньше либо равен этому числу.

Число которое вы хотите делить вписываете в делимое

На каждой итерации цикла делитель увеличивается на 1 ( делитель = делитель +1)

И выполняется проверка, если остаток от деления 0 то число выводится в СООБЩИТЬ иначе цикл продолжает исполнение
---
Пока Делитель <= 100 цикл
На самом деле искать нужно не до 100, а до половины делимого+1, а потом выводить и делимое (потому что после половины делимого нет чисел, на которое делимое делится нацело, кроме себя самого)
---
что после половины делимого нет чисел, на которое делимое делится нацело, кроме себя самогоВ действительности достаточно квадратного корня из делимого, как максимального делителя.

```1c
    Для Целое ( Корень ( Х ) ) по 2 цикл...
```
---
это подойдёт для поиска простого числа(потому что нет смысла выше искать, чем корень числа). но если мы будем искать все делители - тогда мы пропустим половину этого числа(если число кратно 2, разумеется).
Вы правы можно искать до корня из делимого, но тогда ещё надо делать проверку является ли число чётным, и если является им - то выводить ещё и это число
Перенесли данные из 7.7 в БП 3.0. При этом в 7.7 было несколько счетов фактур, которые перенеслись, а в БП 3.0 их надо бы подредактировать. Но почему-то на них отсутствует доступ - никакие данные этих документов невозможно изменить. И как их все-таки корректировать?
---
В форме есть код в процедуре УправлениеФормой:

```1c
    Если Объект.СформированПриВводеНачальныхОстатковНДС Тогда
    Форма.ТолькоПросмотр = Истина;
    КонецЕсли;
```

Поэтому можно обработкой группового изменения реквизитов изменить реквизит Сформирован при вводе начальных остатков НДС

```1c
    СформированПриВводеНачальныхОстатковНДС = Ложь;
```

Потом также поменять обратно.
---
Перенесли данные из 7.7 в БП 3.0. При этом в 7.7 было несколько счетов фактур, которые перенеслись, а в БП 3.0 их надо бы подредактировать. Но почему-то на них отсутствует доступ - никакие данные этих документов невозможно изменить. И как их все-таки корректировать?
Дата запрета редактирования не установлена?
---
Дата запрета редактирования не установлена?Нет.
---
В форме есть код в процедуре УправлениеФормой:

```1c
    Если Объект.СформированПриВводеНачальныхОстатковНДС Тогда
    Форма.ТолькоПросмотр = Истина;
    КонецЕсли;
```

Поэтому можно обработкой группового изменения реквизитов изменить реквизит Сформирован при вводе начальных остатков НДС

```1c
    СформированПриВводеНачальныхОстатковНДС = Ложь;
```

Потом также поменять обратно.
---
Поэтому можно обработкой группового изменения реквизитов изменить реквизит Сформирован при вводе начальных остатков НДССпасибо! Сам никогда бы не нашел.
Здравствуйте.

Нужно добавить к запросу еще одну временную таблицу. Как это сделать?

Я создал временную таблицу, но в списке она не появилась...
---
Зайдите на закладку "Пакет запросов" и переместите запросы в нужном порядке.
---
Зайдите на закладку "Пакет запросов" и переместите запросы в нужном порядке.
---
"Пакет должен располагаться в списке выше запроса, использующего ВТ, формируемую в нем."

спасибо. кто бы мог подумать...)
---
Ну а как вы хотели: просить у машины то, что она еще не сделала? :)
---
я не знал, что последовательность так влияет
Здравствуйте. Вопрос из рубрики бред.
Во внешней обработке хочу оставить совместимость для работы со старыми версиями платформы.
Уперся в непреодалимое, до этого подобные проблемы решал окольными путями...

Клиентский метод, появившийся в платформе только в 8.3.15, например "НачатьПомещениеФайлаНаСервер", вызывает ошибку компиляции модуля при запуске на 8.3.10, не смотря на то, что фактически данный код не будет вызван логикой (вообще работа с файловой системой не вызывается, если платформа не 8.3.13+, это все контролируется самой программой), однако, конечно, компилятору на это все равно.

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

Мечтать не вредно: вот бы существовали директивы препроцессора для версий платформ. Как мне кажется это логично, но у них этого нет.

Есть еще решения, или я все варианты перебрал?
---
Код, вызывающий ошибку при компиляции модуля, можно хранить в экспортных процедурах в служебной форме. Модуль формы будет скомпилирован только при получении формы, значит мы сможем контролировать когда запускать этот код, а когда нет.
---
Код, вызывающий ошибку при компиляции модуля, можно хранить в экспортных процедурах в служебной форме. Модуль формы будет скомпилирован только при получении формы, значит мы сможем контролировать когда запускать этот код, а когда нет.
---
Отличная идея, это проще, чем (3) с макетами, спасибо!! Не подумал что то сам, действительно, модуль формы же не компилируется без вызова.
Тем более что у меня уже есть служебная форма, используемая, по сути, как модуль на клиенте, для меня не проблема будет сделать подобные с кусками спорного кода.
---
легко с помощью команды выполнить("ТекстКоманды");
---
Дочитайте пожалуйста до конца мое сообщение. Там про особенности контекста исполнения.
---
упс, сам решал подобные зигзаги
еще как вариант, делайте макеты с бинарным кодом обработок по разные версии
запускаете свою обработку
определяете версию платформы, и режим совместимости
получаете нужный макет с кодом, формируете из него обработку и используете процедуры,
только во всех макетах должны быть одинаковые имена процедур,
---
Интересный подход. Он, конечно, все еще больше усложняет, но я буду иметь его в виду, особенно если у меня таких методов станет больше чем один... Да и подумать над реализацией там тоже есть над чем, можно, например, в таких макетах держать только клиентский код общего назначения...
---
Про выполнить на клиенте - не знаю, может в этом и есть какой-то смысл, но вот помещать файлы я давненько уже не пользовал - обхожусь двоичными данными, которые просто передаю в серверную функцию ("СервернаяФункция( Новый ДвоичныеДанные(ИмяФайла) )"). Да, если файл триллион гигабайт - это, конечно, не комильфо, но откуда на клиенте такие файлы и сколько на сервере вообще места свободного? Ну и работа с потоками в памяти зачастую оставляет без необходимости это все на сервере в этот файл сохранять.