Имя: Пароль:
1C
1C 7.7
v7: КД 2.0 не могу сконвертировать из ТИС в БП 3.0 Субконто1 Документа ПоступлениеПрочее
0 tgu82
 
22.07.26
21:52
СТолкнулся с проблемой там где ее не ожидал.
ПоступлениеПрочее конвертироуется в ПоступлениеТоваровУслуг с табличной частью Услуги.
Счет затрат 44.1.1 без проблем конвертируется в 44.01. А то Субконто1 никак. Причем если счет 10.6 и субконто1 это номенклатура (ну вот так у нас), то не только конвертируется но и отрабатывает процедура которая переносит из Услуги в Товары и все прекрасно уже давно. Но вот когда вид Субконто1 в ТИС ЗначенияСубконто (по сути Строка) но не получается передать ее в ПоступлениеТоваровУслуг.
Справочники.СтатьиЗАтрат.НайтиПоНаименованию(Субконто1). В XML-файле есть ТАрнспортные услуги с типом Строка. А дальше все - торможу. У АЛиса спрашивал долго. Потом спросил у Ясеня ) Без толку
1 tgu82
 
22.07.26
22:04
Сложный вопрос или простой ответ который я не вижу ?
2 RoRu
 
22.07.26
22:20
(1) не очень понятно, что у вас не получается
а вид субконто1 в ТИС какой?
просто обработкой вы можете субконто 1 в БП3 записать ?
3 zenik
 
22.07.26
22:28
Я бы сделал так:
ПКО = СтатьиЗатратПоНаименованию
ПКО для него - Наименование с поиском и
Значение = Источник;

При выгрузке субконто1 в зависимости от типа значения через ИмяПКО = "СтатьиЗатратПоНаименованию" менять правила.
4 tgu82
 
22.07.26
22:33
(2) То то и оно вид Субконто1 либо Номенклатура либо ЗначениеСубконто - можно сказать что строка
5 tgu82
 
22.07.26
22:37
Субконто1 это же в таблично части.
Ну почему если вид Субконо1 Номенклатура то без проблем оно есть в тч товары ПоступлениеТоварыУслуги.
Но если строка то в файле выгрузки есть это значение. А вот до 8-ки как-то не добирается
6 tgu82
 
22.07.26
22:57
В ПоступлениеПрочее ПКО и там есть ПослеЗагрузки
СчетаУчета = БухгалтерскийУчетПереопределяемый.ПолучитьСчетаРасчетовСКонтрагентом(Объект.Организация, Объект.Контрагент, Объект.ДоговорКонтрагента);

Если Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
    Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовСКомитентом;
Иначе
    Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетов;
КонецЕсли;

Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансов;
Объект.СчетУчетаРасчетовПоТаре        = СчетаУчета.СчетУчетаТары;

//+АдминистраторБД, 2023-10-10, ДОБАВЛЕНО НЕТИПОВОЕ
//    Если есть в ТЧ Услуги материалы с 10 счётом необходимо их перенести в ТЧ Товары
Если Объект.Услуги.Количество() <> 0 Тогда
    Счет10 = ПланыСчетов.Хозрасчетный.Материалы;
    Счет44 = ПланыСчетов.Хозрасчетный.ИздержкиОбращения;
    ТаблицаУслуг = Объект.Услуги.Выгрузить();
    ТаблицаУслуг.Колонки.Добавить("НуженПереносСтроки");
    Сообщить("СЧЕТ "+Счет44);
    ЕстьНеобходимостьВРазбивкеТЧУслуги = Ложь;
    
    Для Каждого СтрокаУслуг Из ТаблицаУслуг Цикл
      Если ЗначениеЗаполнено(СтрокаУслуг.СчетЗатрат) Тогда
        Если СтрокаУслуг.СчетЗатрат.ПринадлежитЭлементу(Счет44) Тогда
            //СтрокаУслуг.Субконто1=Справочники.СтатьиЗатрат.НайтиПоНаименованию(СтрокаУслуг.Субконто1);
            Сообщить(""+" субконто 44 "+СтрокуУслуг.Субконто1);
        ИначеЕсли СтрокаУслуг.СчетЗатрат.ПринадлежитЭлементу(Счет10) Тогда
                СтрокаУслуг.НуженПереносСтроки = Истина;
                ЕстьНеобходимостьВРазбивкеТЧУслуги = Истина;
        Иначе
                СтрокаУслуг.НуженПереносСтроки = Ложь;
        КонецЕсли;
        Иначе    
            СтрокаУслуг.НуженПереносСтроки = Ложь;
      КонецЕсли;
    КонецЦикла;
    
    Если ЕстьНеобходимостьВРазбивкеТЧУслуги Тогда
        СтруктураОтбора = Новый Структура;
        СтруктураОтбора.Вставить("НуженПереносСтроки", Истина);
        
        ТаблицаТоваров = ТаблицаУслуг.Скопировать(СтруктураОтбора);
        
        СтруктураОтбора.Вставить("НуженПереносСтроки", Ложь);
        
        ТаблицаУслугКонечная = ТаблицаУслуг.Скопировать(СтруктураОтбора);
        
        Если ТаблицаУслугКонечная.Количество() > 0 Тогда
            Объект.Услуги.Загрузить(ТаблицаУслугКонечная);
        Иначе
            Объект.Услуги.Очистить();    // После разделения не осталось ни одной услуги
        КонецЕсли;
        
        Если ТаблицаТоваров.Количество() > 0 Тогда
            Объект.Товары.Очистить();
            
            Для Каждого СтрокаТаблицыТоваров Из ТаблицаТоваров Цикл
                НоваяСтрокаТоваров = Объект.Товары.Добавить();
                ЗаполнитьЗначенияСвойств(НоваяСтрокаТоваров, СтрокаТаблицыТоваров);
                НоваяСтрокаТоваров.Коэффициент = 1;
                Если Не ЗначениеЗаполнено(НоваяСтрокаТоваров.Номенклатура) Тогда
                    Если ТипЗнч(НоваяСтрокаТоваров.Номенклатура) = ТипЗнч(НоваяСтрокаТоваров.Субконто1) Тогда
                        Если ЗначениеЗаполнено(НоваяСтрокаТоваров.Субконто1) Тогда
                            НоваяСтрокаТоваров.Номенклатура = НоваяСтрокаТоваров.Субконто1;
                        КонецЕсли;
                    КонецЕсли;
                КонецЕсли;
                НоваяСтрокаТоваров.СчетУчета = СтрокаТаблицыТоваров.СчетЗатрат;
            КонецЦикла;
        КонецЕсли;
        
    КонецЕсли;
    
КонецЕсли;
//-АдминистраторБД, 2023-10-10, ДОБАВЛЕНО НЕТИПОВОЕ    

Для Каждого СтрокаТоваров Из Объект.Товары Цикл
    СтрокаТоваров.Количество = СтрокаТоваров.Количество * СтрокаТоваров.Коэффициент;
    Если СтрокаТоваров.Коэффициент<> 0 Тогда
        СтрокаТоваров.Цена       = СтрокаТоваров.Цена / СтрокаТоваров.Коэффициент;
    КонецЕсли;
КонецЦикла;

Объект.СуммаДокумента = УчетНДСПереопределяемый.ПолучитьСуммуДокументаСНДС(Объект);

Объект.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;

Если Объект.Ответственный.Пустая() Тогда
    Объект.Ответственный = Пользователи.ТекущийПользователь();
КонецЕсли;
7 zenik
 
22.07.26
22:57
(5) потому, что, есть правила конвертации Номенклатуры и КД берет их, даже если они не указаны для конвертации.
А правил для конвертации статьи - нет и что с ним делать при получении - КД не знает.
8 tgu82
 
22.07.26
22:58
(7) Я это понимаю - но как его сделать?
9 tgu82
 
22.07.26
23:02
(7) Сделали ПКО СтатьиЗатрат.
Но без толку
10 tgu82
 
22.07.26
23:04
СсылкаНаОбъект = Справочники.СтатьиЗатрат.НайтиПоНаименованию(ПараметрыОбъекта);
Сообщить("Поиск статьи затрат по наименованию: " + ПараметрыОбъекта);
Сообщить("Найдено: " + СсылкаНаОбъект);

Это в ПоляПоиска
11 Fedor-1971
 
23.07.26
09:34
(9) Сделал, это хорошо.
Но, как КД понять, что твоя, условно, строка должна конвертироваться по этому правилу?
в ПКС Субконто1 поставь проверку
Если ТипСтрока(ОбъектКоллекции.Субконто1) = "Строка или что-то там" тогда
 ИмяПКО = "правилоСтатьиЗатрат";
 ИсходящиеДанные = Список значений с полями для работы правила, т.к. у тебя строка на входе правила, а не Источник.Наименование как очень хочется
КонецЕсли;


Чисто для примера:
Если ПустоеЗначение(ОбъектКоллекции.ИмяПКО_С1) = 0 тогда // на этапе выборки данных определяем по какому правилу будем выгружать ПКС
	ИмяПКО = ОбъектКоллекции.ИмяПКО_С1;
        
	ИсходящиеДанные = ОбъектКоллекции.ДанныеДляСправочникаНоменклатуры; // для данного правила выдаём подготовленные данные для работы
КонецЕсли;
12 tgu82
 
23.07.26
11:31
//+АдминистраторБД, 2020-03-30, ДОБАВЛЕНО НЕТИПОВОЕ
//
Если ОбъектКоллекции.Субконто1.Вид()<>"Номенклатура" Тогда
    Значение = СокрЛП(Строка(ОбъектКоллекции.Субконто1));
    ПараметрыОбъекта = Значение;
    ИмяПКОВидСубконто = "СтатьиЗатрат";    
Иначе
    Значение = ОбъектКоллекции.Субконто1;
КонецЕсли;
Сообщить("Значение: " + Значение);

Это для ПКС Субконто1
13 tgu82
 
23.07.26
13:28
Вообще не пойму в чем проблема. Если в файле выгрузки вся инфа есть то что мешает работать с ней на этапе загрузки или послезагрузки - превратить строку в Статью затрат ?
14 Fedor-1971
 
23.07.26
13:49
(13) Отсутствие информации что с этим делать
т.е. ты грузишь в, например, документ Субконто1, загрузка пытается найти, условно, статью затрат, а её нет и создать не хватает информации или стоит запрет в ПКО
И в постобработке документа у тебя уже нет исходных данных из файла, а есть пустая Статья затрат

Как выход: нарисовать правила корректного заполнения, условно, Статьи затрат с созданием элементов

Для обмена 8-8 есть ещё вариант функционала параметров объекта, через галку в ПКС "Передать данные в параметр" - вот с ним в постобработке можно работать, они передаются "как есть"
15 tgu82
 
23.07.26
13:50
(14) для 8-8 то есть а для 7.7 - 8 нет.
Но в файле же есть эти теги и есть обработчик для них
16 tgu82
 
23.07.26
13:51
А еще...Не бейте сильно..в ПКО номенклатура
17 Fedor-1971
 
23.07.26
13:55
(15) Есть информация для поиска Статьи затрат, но в 8 они все есть? Например, с наименованиями как в 7.7

ИмяПКОВидСубконто - это что? имя правила выгрузки задаётся в ИмяПКО, по уму, лучше задавать имя правила конвертации, так будет более однозначно
18 tgu82
 
23.07.26
13:53
Источник СправочникССылкаНоменклатура и такой же приемник. Но в ТИС 7.7 нет такого понятия как СправочникССылкаНоменклатура
19 tgu82
 
23.07.26
13:53
А Источник же ТИС
20 tgu82
 
23.07.26
13:56
(17) В файле выгрузки они все есть
- <Свойство Имя="Субконто1" Тип="СправочникСсылка.Номенклатура">
- <Ссылка Нпп="4">
- <Свойство Имя="Код" Тип="Строка">
  <Значение>11181</Значение>
  </Свойство>
- <Свойство Имя="ЭтоГруппа" Тип="Булево">
  <Пусто />
  </Свойство>
  </Ссылка>
  </Свойство>
Это для номенклатура ну когда 10.6
- <Свойство Имя="СчетЗатрат" Тип="ПланСчетовСсылка.Хозрасчетный">
  <Значение>ИздержкиОбращения</Значение>
  </Свойство>
- <Свойство Имя="Субконто1" Тип="Строка">
  <Значение>транспортные расходы</Значение>
  </Свойство>
А вот это как то что мне нужно. В файле как видите вся инфа есть
21 Fedor-1971
 
23.07.26
14:00
(18) СправочникСсылка.Номенклатура - правила создаются в КД2 от 8, потому так и отображается

Вот, чисто глупый вопрос, но на всякий случай, после всех манипуляций с правилами обновили модуль в обработке выгрузки из 7.7? (V77Exp.ert)
Иногда можно затупить и удивляться, правила корректные, а результат не тот
22 Fedor-1971
 
23.07.26
14:16
(20) Уехала строка, а должен быть тэг для поиска в справочнике, как у Номенклатуры

ПКС некорректно сделано:
Значение = СокрЛП(Строка(ОбъектКоллекции.Субконто1));
а надо:
Значение = СоздатьОбъект("СписокЗначений");
Значение.Установить("Наименование", СокрЛП(ОбъектКоллекции.Субконто1));
ИмяПКО = "СтатьяЗатрат"
т.е. ПКО Статьи затрат делаем без источника с указанным приёмником и поиском по наименованию
Если по схеме в (11), т.е. передаёшь во входящие данные и ставишь галку "Получить данные из входящих данных"
23 tgu82
 
23.07.26
14:14
(21)у меня она называется по-другому, но конечно она обновлена модулемобработки который выгружается при сохранении правил конвертации
24 tgu82
 
23.07.26
14:15
(22) То есть вы хотите сказать Субконто1 уже должно иметь тип СправочниСслыка.СтатьЗатрат прямо в файле выгрузки?
25 tgu82
 
23.07.26
14:17
- <Свойство Имя="Субконто1" Тип="СправочникСсылка.СтатьиЗатрат">
  <Значение>транспортные расходы</Значение>
  </Свойство>
ТАк должно быть в файле Выгрузки что все работало?
26 Fedor-1971
 
23.07.26
14:18
(24) для 7.7 да
27 tgu82
 
23.07.26
14:19
(22) Или еще что-то чтоб 8-ке было понятно все. Скажем чтоб искала именно по наименованию и еще если нет создавала новую статью или ругалась
28 Fedor-1971
 
23.07.26
14:20
(25) Как то так:
- <Свойство Имя="Субконто1" Тип="СправочникСсылка.СтатьиЗатрат">
- <Ссылка Нпп="???">
- <Свойство Имя="Наименование" Тип="Строка">
  <Значение>транспортные расходы</Значение>
  </Свойство>
- <Свойство Имя="ЭтоГруппа" Тип="Булево">
  <Пусто />
  </Свойство>
  </Ссылка>
  </Свойство>
29 Fedor-1971
 
23.07.26
14:22
(27) В ПКО СтатьиЗатрат - разрешаем создание, автоматическую нумерацию, выставляем поиск по наименованию
30 tgu82
 
23.07.26
14:23
(29) А ПКС Субконто1 пишем откуда брать данные, из каакого ПКО?
31 Fedor-1971
 
23.07.26
14:24
(30) Да как в (22), отправляем в источник список значений с наименованием и указываем правило
32 tgu82
 
23.07.26
14:27
Если ОбъектКоллекции.Субконто1.Вид()<>"Номенклатура" Тогда
    Значение = СокрЛП(Строка(ОбъектКоллекции.Субконто1));
    ИмяПКО = "СтатьиЗатрат";    
Иначе
    Значение = ОбъектКоллекции.Субконто1;
    ИмяПКО = "Номенклатура"
КонецЕсли;
Хотя она и так соображает если номеклатура
33 Fedor-1971
 
23.07.26
14:28
Момент: используй СокрЛП() для наименований, в 7.7 там добиты пробелы на всю длину, соответственно в 8 забацает такое-же, но при сохранении лишние пробелы задавятся и поиск будет пролетать (получишь кучу записей в Статьях затрат)
34 Fedor-1971
 
23.07.26
14:29
(32) Для надёжности, лучше указывать имя ПКО
35 tgu82
 
23.07.26
14:30
(32) И не нужно ни при выгрузке, ни перед выгрузкой и пр процедуры в ПКО СтатьиЗатрат?
36 Fedor-1971
 
23.07.26
14:57
(35) Да, все данные для статьи затрат отправляются из ПКС Субконто1 документа (ну, или любых других)

(32) Поправь код с учётом (22)
37 tgu82
 
23.07.26
15:03
Начало выгрузки:   23.07.26 15:02:52
Возврат мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(НомерПКО, Реквизит);
{D:\СОХРАНИЛИ\КОПИЯ КОНВЕРТАЦИИ\XML_ВЫГРУЗКАТИС_БП30КОПИЯ22072026.ERT(12714)}: Номер за пределами значения!

Ошшибку дала при выгрузке
38 Fedor-1971
 
23.07.26
15:24
(37) Проверь имя ПКО
Остальное - отладчиком смотреть, что не может найти
39 tgu82
 
23.07.26
15:29
- <Объект Нпп="3" Тип="СправочникСсылка.СтатьиЗатрат" ИмяПравила="СтатьиЗатрат">
- <Ссылка Нпп="3">
- <Свойство Имя="Наименование" Тип="Строка">
  <Значение>транспортные расходы</Значение>
  </Свойство>
  </Ссылка>
  </Объект>
Ну наконец-то
40 tgu82
 
23.07.26
15:29
В ПКО вместо СтатьиЗатрат было СтатьяЗатрат
41 tgu82
 
23.07.26
15:41
Супер Все заполняется. Сейчас для НУ пропишу и все. Спасибо огромное Всем всем
42 Наивный
 
24.07.26
06:02
Хорошая ветка. Можно тут же про своё спрошу?
Рисую на КД обмен 7-8. В результате переписал V77Exp.ert на 3 режима
1. стандарт как бУло
2. выгрузка изменений (регистрация через УРБД)
3. выгрузка по списку значений подбором.
Следующим пунктом будет внести измененные процедуры в макеты конфы КД, чтобы КД генерила код для V77Exp.ert с учетом моих изменений.
Покритикуйте или предложите другое решение. Заранее блпгодарен
43 Fedor-1971
 
24.07.26
09:16
(42) Хочется динамической обработки в функционале для статики?
По факту, либо делаем правила для всего, что может быть в списке и реализуем некий функционал выбора (можно в отдельной обработке и программный вызов V77Exp.ert, либо подкрутить оную на нужный тебе функционал, например, добавить слой с ТЗ для отправки данных и выбором правила обработки значения для отправки)
44 Наивный
 
24.07.26
09:27
(43) Хочется оставить V77Exp.ert совместимым с КД2 и расширить функционал. Не нашел возможности сделать это в КД - пришлось править функции зашитые в КД.
45 Наивный
 
24.07.26
09:28
+(44) Значит приходится менять конфигурацию в КД
46 Наивный
 
24.07.26
09:54
А может существует такой вариант:
переписать этот самый V77Exp.ert, а функции из сгенерированного КД файла выполнять через ВК? Что-то такое вертится типа "Выполняемый модуль"
47 Fedor-1971
 
24.07.26
10:17
(46) Проще сделать собственную шину данных:
1. Формируешь в 7.7 сообщение в удобном для тебя формате (хоть для каждого справочника отдельный формат или универсальный - отдаём элемент полностью)
2. В отдельной БД преобразуешь в данные для загрузки в 8 по неким правилам (типа Шина данных)
3. В 8 читаешь и создаёшь объекты
Плюсом забацать какую-то адресацию сообщений и хранение оных какой-то период

Собственно формат обмена под твои конкретные задачи, но обработчики могут быть универсальными. Со временем наработаешь форматы под разные задачи и обработчики загрузки / выгрузки - по результату будет тебе личная конвертация

Так-то КД2 это обвязка под обмен по правилам, достаточно универсальная курочить оную - привязываться к существующей технологии, но сама 1С пытается универсализировать обмены в неком отличном от КД2 виде
48 tgu82
 
24.07.26
10:19
Есть у меня еще правило СчетФактураПолученныйКорректировочный. Приемник: ДокументСсылкаСчетФактраПолученный Срабатывать должно когда в ПоступлениеТМЦ сумма<0. Есть правило для ВидСчетаФактуры в этом правиле ВидСчетаФактуры Значение "КорректировочныЙ". Но не хочет он понимать это правило никак
49 Наивный
 
24.07.26
10:21
(47) С восьмеркой у меня напряг, так что Ваше предложение мимо.
Тем более - это практически писать полный самопал/велосипед, а КД все-таки более-менее гибкий инструмент
50 tgu82
 
24.07.26
10:22
То ли где-то надо прописать Что если сумма в основании<0 то ИмяПКО СчетФактураПолученныйКорректировочный а иначе ИмяПКО СчетФактураПолученный
51 tgu82
 
24.07.26
10:23
Просто непонятно а где это можно прописать
52 tgu82
 
24.07.26
10:25
Получается в какой-то глобальной процедуре в конвертации где можно отлавливать любой источник
53 Наивный
 
24.07.26
10:26
(50) 2 разных правила с условиями не пойдет?
54 tgu82
 
24.07.26
10:29
(53) Пойдет так ведь у меня так и есть - два разных правила
55 Наивный
 
24.07.26
10:33
(54) сделай три :)
56 tgu82
 
24.07.26
10:40
(55) Не понял
57 tgu82
 
24.07.26
10:41
Если Сумма<0 то одно пко иначе другое пко.
Так вот где это ветвление сделать?
58 Наивный
 
24.07.26
10:46
перед выгрузкой
Если Источник.ТипУчета <> 1 Тогда
    Отказ = 1;
ИначеЕсли Источник.Проведен()=0 Тогда
    Отказ = 1;
КонецЕсли;
59 Наивный
 
24.07.26
10:49
то есть делаешь несколько правил и перед выгрузкой проверяешь условия. в результате должно только по одному из правил выгрузиться. или я не так понял?
60 tgu82
 
24.07.26
10:57
(59) конечно так. ну то есть через отказ
61 tgu82
 
24.07.26
11:26
Почему-то когда я формирую корректировкуПОступления (ПоступлениеТМЦ с минусовой суммой) оон мне все равно формирует ПОступлениТоваровУслуг с минусовым количеством и нулевой суммой кроме самой КорректировкиПоступления...Приходится потом удалять их
62 tgu82
 
24.07.26
11:33
То есть где-то еще есть неправильное ветвление кроме "ПередВыгрузкой"
63 tgu82
 
24.07.26
12:37
Там в табличных частях есть ПередОбработкой. Поучается что эта процедура выполняется чуть не раньше основного выполнения ПКО по документу?
64 Наивный
 
27.07.26
07:38
(63) долго ли отладчиком проверить?
А у меня, похоже, все прекрасно.
Сервис = СоздатьОбъект(''Сервис'');
глДопМодуль = Сервис.ДобавитьГлобальныйМодуль(''#ЗагрузитьИзФайла C:\KD\МодульОбменаТорг_БП№.txt'');
И все выгруженные КД функции-процедуры подключаются.
Хвала создателю ВК!
65 Fedor-1971
 
27.07.26
08:52
(64) и зачем тебе ВК?
В модуле формы обработки делаешь #ЗагрузитьИзФайла и по указанному пути из КД2 выгружаешь файлик и всех делов
66 Наивный
 
27.07.26
09:19
(65) А предыдущие посты не читал? Я переписал обработку под свои нужды и мне нужно подгружать только созданные мной в КД правила.
67 Наивный
 
28.07.26
09:11
(64) там не все гладко - сделал по другому
Так что если кому интересно - вставляете этот код ПриОткрытии() и можно курочить V77EXP.ert до полной неузнаваемости. Живучая стюардесса млин
Процедура СоздатьВыполняемыйМодуль()    //    АНик
    ВМ = СоздатьОбъект("ВыполняемыйМодуль");
    Текст = СоздатьОбъект("Текст");
    Текст.Открыть(ФайлСгенерированныйКД);
    ТекстМодуля = "";
    НачалисьОбработчики = 0;
    СтрокТекста = Текст.КоличествоСтрок();
    Для НПП = 1 По СтрокТекста Цикл
        СтрокаТекста = Текст.ПолучитьСтроку(НПП);
        Если СтрокаТекста = "// НАЧАЛО ОБРАБОТЧИКОВ" Тогда
            НачалисьОбработчики = 1;
        КонецЕсли;
        Если НачалисьОбработчики = 1 Тогда
            ТекстМодуля = ТекстМодуля + СтрокаТекста + РазделительСтрок;
        КонецЕсли;
        Если СтрокаТекста = "// ОКОНЧАНИЕ ОБРАБОТЧИКОВ" Тогда
            Прервать;
        КонецЕсли;
    КонецЦикла;
    ВМ.УстановитьМодуль(ТекстМодуля);
    ВМ.НазначитьКонтекст(Контекст);
    ВМ.КомпилироватьМодуль();
    ВМ.ВыполнитьМодуль();
КонецПроцедуры // СоздатьВыполняемыйМодуль