Compare commits

..

No commits in common. "master" and "4.40" have entirely different histories.
master ... 4.40

3251 changed files with 968316 additions and 1940583 deletions

View File

@ -1,20 +0,0 @@
---
name: Проблема
about: Неожиданное поведение программы
title: ''
labels: проблема
assignees: ''
---
**Программное окружение**
Получить эту информацию можно кнопкой "Техническая информация" в окне "О подсистеме" http://devtool1c.ucoz.ru/forum/2-2-1
**Воспроизведение проблемы**
1. Открыл инструмент ААА
2. Нажал кнопку БББ
3. Получил окно с ошибкой ВВВ
**Ожидаемое поведение**
Какая реакция программы ожидалась?

View File

@ -1,10 +0,0 @@
---
name: Пожелание
about: Желание нового поведения программы
title: ''
labels: пожелание
assignees: ''
---
Опиши в каком инструменте при каких условия что должно происходить.

0
.gitignore vendored
View File

View File

@ -30,14 +30,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Hierarchical>false</Hierarchical>
@ -45,7 +37,7 @@
<LimitLevelCount>false</LimitLevelCount>
<LevelCount>2</LevelCount>
<FoldersOnTop>true</FoldersOnTop>
<UseStandardCommands>false</UseStandardCommands>
<UseStandardCommands>true</UseStandardCommands>
<Owners/>
<SubordinationUse>ToItems</SubordinationUse>
<CodeLength>0</CodeLength>
@ -102,14 +94,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Текст алгоритма</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Текст алгоритма</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Текст алгоритма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -154,14 +138,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -207,11 +183,7 @@
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Комментарий</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Комментарий</v8:content>
<v8:content>Comment</v8:content>
</v8:item>
</Synonym>
<Comment/>
@ -228,8 +200,8 @@
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>true</MultiLine>
<ExtendedEdit>true</ExtendedEdit>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
@ -269,11 +241,7 @@
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Параметры</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Параметры</v8:content>
<v8:content>Параметры метаданных2i S</v8:content>
</v8:item>
</Synonym>
<Comment/>
@ -290,14 +258,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Вход</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Вход</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Вход</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -335,14 +295,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Выход</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Выход</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Выход</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -380,14 +332,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Допустимые типы</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Допустимые типы</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Допустимые типы</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -431,11 +375,7 @@
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Значение</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Значение</v8:content>
<v8:content>Value</v8:content>
</v8:item>
</Synonym>
<Comment/>
@ -490,14 +430,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Значение хранилище</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Значение хранилище</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Значение хранилище</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -537,11 +469,7 @@
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Имя</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Имя</v8:content>
<v8:content>Name</v8:content>
</v8:item>
</Synonym>
<Comment/>
@ -582,81 +510,6 @@
<Form>ФормаСписка</Form>
<Form>ФормаСпискаУпр</Form>
<Form>ФормаВыбораУпр</Form>
<Command uuid="d2f08665-e019-47dc-bd2a-7cd8919c48d8">
<Properties>
<Name>Команда1</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Алгоритмы (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>CommandGroup.ирРазработка</Group>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Shortcut/>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</Command>
<Command uuid="b94f2fc6-8dd9-4a1b-88c6-9d061b7c5766">
<Properties>
<Name>ОткрытьНастройкиАлгоритмов</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки алгоритмов</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Настройки алгоритмов</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Настройки алгоритмов</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть настройки алгоритмов</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Открыть настройки алгоритмов</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Открыть настройки алгоритмов</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирНастройкиАлгоритмов</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
<xr:TransparentPixel x="1" y="9"/>
</Picture>
<Shortcut/>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</Command>
</ChildObjects>
</Catalog>
</MetaDataObject>

View File

@ -0,0 +1,271 @@
Перем мТелоПозиционногоМетода;
Перем мТелоПоименногоМетода;
Перем ДатаИзмененияКонтекста Экспорт;
Перем мСтруктураВнешнейОбработки Экспорт;
Перем ИндивидуальнаяВнешняяОбработка Экспорт;
//Процедура ДобавитьПараметрыВСтруктуру(СтруктураПараметров) Экспорт
// Для Каждого СтрокаПараметра Из Параметры Цикл
// Если Не СтруктураПараметров.Свойство(СтрокаПараметра.Имя) Тогда
// СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
// КонецЕсли;
// КонецЦикла;
// ИмяПараметра = "Результат";
// Если Не СтруктураПараметров.Свойство(ИмяПараметра) Тогда
// СтруктураПараметров.Вставить(ИмяПараметра);
// КонецЕсли;
//КонецПроцедуры // ПолучитьСтруктуруПараметров()
Функция ПолучитьСтартовуюСтрокуАлгоритмаВТексте() Экспорт
Возврат Параметры.Количество();
КонецФункции // ПолучитьСтартовуюСтрокуАлгоритмаВМодуле()
Функция ПолучитьСтартовуюСтрокуМетодаВМодуле() Экспорт
Результат = 1 + СтрЧислоСтрок(ПолучитьШапкуОпределенияМетода() + ПолучитьШапкуТелаМетода());
Возврат Результат;
КонецФункции // ПолучитьСтартовуюСтрокуАлгоритмаВМодуле()
Функция ПолучитьОбъявлениеСлужебныхПеременных()
МассивСлужебныхПеременных = Новый Массив;
МассивСлужебныхПеременных.Добавить("ЭтотОбъект");
МассивСлужебныхПеременных.Добавить("ИспользуемоеИмяФайла");
МассивСлужебныхПеременных.Добавить("Результат");
Разделитель = ", ";
Результат = "";
Для Каждого СлужебнаяПеременная Из МассивСлужебныхПеременных Цикл
Результат = Результат + Разделитель + СлужебнаяПеременная;
КонецЦикла;
Результат = Сред(Результат, СтрДлина(Разделитель) + 1);
Результат = "Перем " + Результат + ";";
Возврат Результат;
КонецФункции // ПолучитьОбъявлениеСлужебныхПеременных()
Функция ПолучитьТекстМодуляОбработки() Экспорт
Результат = "";
Результат = Результат + "// " + Наименование + Символы.ПС;
Результат = Результат + ПолучитьОпределениеМетода();
Возврат Результат;
КонецФункции // ПолучитьТекстМодуляОбработки()
Функция ПолучитьОпределениеМетода(УниверсальныеИменаПараметров = Ложь) Экспорт
Результат = ПолучитьШапкуОпределенияМетода();
Результат = Результат + ПолучитьТелоМетода() + Символы.ПС;
Результат = Результат + Символы.Таб + "Возврат Результат;" + Символы.ПС;
Результат = Результат + "КонецФункции" + Символы.ПС;
Возврат Результат;
КонецФункции // ПолучитьОпределениеМетода()
Функция ПолучитьШапкуОпределенияМетода()
Результат = "Функция мМетод(_АлгоритмОбъект, _Режим";
Для Счетчик = 0 По 9 Цикл
ИмяПараметра = "_П" + Счетчик;
Результат = Результат + ", " + ИмяПараметра;
КонецЦикла;
Результат = Результат + ") Экспорт" + Символы.ПС;
Результат = Результат + Символы.Таб + ПолучитьОбъявлениеСлужебныхПеременных();
Возврат Результат;
КонецФункции // ПолучитьШапкуОпределенияМетода()
Функция ПолучитьШапкуТелаМетода()
Результат = "";
МассивТаблицПараметров = Новый Массив;
Результат = Результат + "
| _Параметры = _АлгоритмОбъект.Параметры;";
//Для Индекс = 0 ПО Параметры.Количество() - 1 Цикл
// СтрокаПеременной = Параметры[Индекс];
// ИмяПеременной = СтрокаПеременной.Имя;
// Результат = Результат + "
// | " + ИмяПеременной + " = ?(_П0.Свойство(""" + ИмяПеременной + """), _П0." + ИмяПеременной + ", _Параметры[" + Индекс + "].Значение);";
//КонецЦикла;
Результат = Результат + "
| Если _Режим = 0 Тогда";
Для Индекс = 0 ПО Параметры.Количество() - 1 Цикл
СтрокаПеременной = Параметры[Индекс];
Если Индекс < 10 Тогда
ИмяПараметра = "_П" + Индекс;
Иначе
ИмяПараметра = "Null";
КонецЕсли;
ИмяПеременной = СтрокаПеременной.Имя;
Результат = Результат + "
| " + ИмяПеременной + " = ?(" + ИмяПараметра + " = Null, _Параметры[" + (Индекс) + "].Значение, "
+ ИмяПараметра + ");";
КонецЦикла;
Результат = Результат + "
| Иначе";
Для Индекс = 0 ПО Параметры.Количество() - 1 Цикл
СтрокаПеременной = Параметры[Индекс];
ИмяПеременной = СтрокаПеременной.Имя;
Результат = Результат + "
| " + ИмяПеременной + " = ?(_П0.Свойство(""" + ИмяПеременной + """), _П0." + ИмяПеременной +
", _Параметры[" + (Индекс) + "].Значение);";
КонецЦикла;
Результат = Результат + "
| КонецЕсли;";
Результат = Результат + Символы.ПС + ирКэш.Получить().МаркерНачалаАлгоритма;
Возврат Результат;
КонецФункции // ПолучитьШапкуТелаМетода()
Функция ПолучитьТелоМетода(Кэшировать = Ложь) Экспорт
Результат = ПолучитьШапкуТелаМетода();
Для Сч1 = 1 По СтрЧислоСтрок(ТекстАлгоритма) Цикл
Результат = Результат + Символы.Таб + СтрПолучитьСтроку(ТекстАлгоритма, Сч1) + Символы.ПС;
КонецЦикла;
Результат = Результат + ирКэш.Получить().МаркерКонцаАлгоритма;
Результат = Результат + Символы.Таб + "; ~Конец:";
//Для Каждого СтрокаПараметра Из Параметры Цикл
// Индекс = Параметры.Индекс(СтрокаПараметра);
// ИмяПеременной = СтрокаПараметра.Имя;
// Результат = Результат + "
// | _П0." + ИмяПеременной + " = " + ИмяПеременной + ";";
//КонецЦикла;
Результат = Результат + "
| Если _Режим = 0 Тогда";
Для Каждого СтрокаПараметра Из Параметры Цикл
Индекс = Параметры.Индекс(СтрокаПараметра);
Результат = Результат + "
| _П" + Индекс + " = " + СтрокаПараметра.Имя + ";";
КонецЦикла;
Результат = Результат + "
| Иначе";
Для Каждого СтрокаПараметра Из Параметры Цикл
Индекс = Параметры.Индекс(СтрокаПараметра);
ИмяПеременной = СтрокаПараметра.Имя;
Результат = Результат + "
| _П0.Вставить(""" + ИмяПеременной + """, " + ИмяПеременной + ");";
КонецЦикла;
Результат = Результат + "
| КонецЕсли;";
Возврат Результат;
КонецФункции // ПолучитьТелоМетода()
Функция ПолучитьТекстМакетаПараметров() Экспорт
Возврат "";
КонецФункции // ПолучитьТекстМакетаПараметров()
Функция ВыполнитьЛокально(ТекстДляВыполнения, ЛиСинтаксическийКонтроль = Ложь) Экспорт
Возврат ирКэш.Получить().ВыполнитьЛокально(ТекстДляВыполнения);
КонецФункции // ВыполнитьЛокально()
Функция ПроверитьДанные() Экспорт
ДанныеКорректны = Истина;
// Проверка шапки
ЧистоеНаименование = СокрЛП(Наименование);
ирОбщий.ПрисвоитьЕслиНеРавноЛкс(Наименование, ЧистоеНаименование);
Если Не ирОбщий.ЛиИмяПеременнойЛкс(Наименование) Тогда
ДанныеКорректны = Ложь;
Сообщить("Имя алгоритма не отвечает правилам формирования имен переменных встроенного языка", СтатусСообщения.Важное);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Алгоритмы.Ссылка
|ИЗ
| " + Метаданные().ПолноеИмя() + " КАК Алгоритмы
|ГДЕ
| Алгоритмы.Наименование = &Наименование
| И Алгоритмы.Ссылка <> &Ссылка";
Запрос.УстановитьПараметр("Наименование", Наименование);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
ДанныеКорректны = Ложь;
Сообщить("В справочнике """ + Метаданные().Имя + """ уже существует элемент с наименованием """ + Наименование + """",
СтатусСообщения.Важное);
КонецЕсли;
ДанныеКорректны = ДанныеКорректны И ирОбщий.ЛиПараметрыАлгоритмыКорректныЛкс(Параметры.Выгрузить(, "Имя"));
Возврат ДанныеКорректны;
КонецФункции // ПроверитьДанные()
//Функция ПроверитьТЧ(Параметры)
// ДанныеКорректны = Истина;
// МетаданныеТЧ = ирОбщий.ПолучитьМетаданныеЛкс(Параметры);
// КопияТЧ = Параметры.Выгрузить();
// КопияТЧ.Свернуть("Имя");
// Если КопияТЧ.Количество() <> Параметры.Количество() Тогда
// Параметры.Сортировать("Имя");
// Сообщить("Строки табличной части """ + МетаданныеТЧ.Представление() + """ должны иметь уникальные имена",
// СтатусСообщения.Важное);
// ДанныеКорректны = Ложь;
// КонецЕсли;
// Для Каждого СтрокаПараметра Из Параметры Цикл
// Если Не ирОбщий.ЛиИмяПеременнойЛкс(СтрокаПараметра.Имя) Тогда
// ДанныеКорректны = Ложь;
// Сообщить("Имя параметра """ + СтрокаПараметра.Имя + """ не отвечает правилам формирования имен встроенного языка",
// СтатусСообщения.Важное);
// КонецЕсли;
// КонецЦикла;
// Возврат ДанныеКорректны;
//КонецФункции // ПроверитьТЧ()
Процедура СобратьКонтекст() Экспорт
ДатаИзмененияКонтекста = ДатаИзменения;
КонецПроцедуры // ПрочитатьКонтекст()
Процедура ПередЗаписью(Отказ)
Если Не ОбменДанными.Загрузка Тогда
ДатаИзменения = ТекущаяДата();
СобратьКонтекст();
Отказ = Отказ Или Не ПроверитьДанные();
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если Не ОбменДанными.Загрузка Тогда
мТекстАлгоритмаСПараметрами = "";
мПлатформа = ирКэш.Получить();
Если мПлатформа <> Неопределено Тогда
#Если Клиент Тогда
мПлатформа.ОбновитьАлгоритмВКеше(ЭтотОбъект);
#КонецЕсли
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
Наименование = Наименование + "1";
КонецПроцедуры
ДатаИзмененияКонтекста = ДатаИзменения;
мТекстАлгоритмаСПараметрами = "";
ИндивидуальнаяВнешняяОбработка = Истина;

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Форма выбора упр</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Форма выбора упр</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Форма выбора упр</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<Form uuid="14c3fc6b-84b9-47f8-8d22-7f66a7ae5c3b">
<Properties>
<Name>ФормаСписка</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма списка</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,48 @@

Процедура ДействияФормыМенеджерТабличногоПоля(Кнопка)
ирОбщий.ОткрытьМенеджерТабличногоПоляЛкс(ЭлементыФормы.СправочникСписок, ЭтаФорма);
КонецПроцедуры
Процедура ДействияФормыОПодсистеме(Кнопка)
ирОбщий.ОткрытьСправкуПоПодсистемеЛкс(ТипЗнч(СправочникСписок));
КонецПроцедуры
Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущаяСтрока <> Неопределено Тогда
Текст = Элемент.ТекущаяСтрока.ТекстАлгоритма;
Иначе
Текст = "";
КонецЕсли;
ЭлементыФормы.ПолеТекстовогоДокумента.УстановитьТекст(Текст);
КонецПроцедуры
Процедура ДействияФормыКонсольКода(Кнопка)
Ссылка = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
Если Ссылка = Неопределено Тогда
Возврат;
КонецЕсли;
Справочники[Метаданные.НайтиПоТипу(ТипЗнч(ЭлементыФормы.СправочникСписок.Значение)).Имя].ОткрытьКонсольКодаДляАлгоритма(Ссылка);
КонецПроцедуры
Процедура ТекстАлгоритмаПриИзменении(Элемент)
СправочникСписок.Отбор.ТекстАлгоритма.Использование = Истина;
СправочникСписок.Отбор.ТекстАлгоритма.ВидСравнения = ВидСравнения.Содержит;
КонецПроцедуры
Процедура ОткрытьНастройкиАлгоритмов(Кнопка)
ирОбщий.ОткрытьНастройкиАлгоритмовЛкс();
КонецПроцедуры
Порядок.Установить("ДатаИзменения Убыв");

File diff suppressed because it is too large Load Diff

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Форма списка упр</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Форма списка упр</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Форма списка упр</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>

View File

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<VerticalScroll>useIfNecessary</VerticalScroll>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаКонсольКода" id="12">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КонсольКода</CommandName>
<ExtendedTooltip name="ФормаКонсольКодаРасширеннаяПодсказка" id="13"/>
</Button>
<Button name="ФормаОбщаяКомандаирОПодсистеме" id="8001">
<Type>CommandBarButton</Type>
<CommandName>CommonCommand.ирОПодсистеме</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="8002"/>
</Button>
<Button name="ПоискВСправкеГлобальнаяИис" id="7999">
<Type>CommandBarButton</Type>
<CommandName>0</CommandName>
<DataPath>ПараметрГлобальныхКомандИис</DataPath>
<LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ПоискВСправкеГлобальнаяИисРасширеннаяПодсказка" id="8000"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ChildItems>
<Table name="Список" id="1">
<Representation>List</Representation>
<CommandBarLocation>None</CommandBarLocation>
<DefaultItem>true</DefaultItem>
<Height>5</Height>
<UseAlternationRowColor>true</UseAlternationRowColor>
<InitialTreeView>ExpandTopLevel</InitialTreeView>
<EnableStartDrag>true</EnableStartDrag>
<FileDragMode>AsFile</FileDragMode>
<DataPath>Список</DataPath>
<RowPictureDataPath>Список.DefaultPicture</RowPictureDataPath>
<SearchStringLocation>None</SearchStringLocation>
<ViewStatusLocation>None</ViewStatusLocation>
<SearchControlLocation>None</SearchControlLocation>
<AutoRefresh>false</AutoRefresh>
<AutoRefreshPeriod>60</AutoRefreshPeriod>
<Period>
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
</Period>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<RestoreCurrentRow>false</RestoreCurrentRow>
<TopLevelParent xsi:nil="true"/>
<ShowRoot>true</ShowRoot>
<AllowRootChoice>false</AllowRootChoice>
<UpdateOnDataChange>Auto</UpdateOnDataChange>
<ContextMenu name="СписокКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="3">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="14"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="15">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="16"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="17"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="18">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="19"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="20"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="21">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="22"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="23"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="Наименование" id="4">
<DataPath>Список.Description</DataPath>
<DefaultItem>true</DefaultItem>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="24"/>
</LabelField>
<LabelField name="ДатаИзменения" id="6">
<DataPath>Список.ДатаИзменения</DataPath>
<ContextMenu name="ДатаИзмененияКонтекстноеМеню" id="7"/>
<ExtendedTooltip name="ДатаИзмененияРасширеннаяПодсказка" id="25"/>
</LabelField>
<LabelField name="Комментарий" id="8">
<DataPath>Список.Комментарий</DataPath>
<ContextMenu name="КомментарийКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="КомментарийРасширеннаяПодсказка" id="26"/>
</LabelField>
</ChildItems>
</Table>
<TextDocumentField name="ТекстАлгоритма" id="10">
<DataPath>Items.Список.CurrentData.ТекстАлгоритма</DataPath>
<ReadOnly>true</ReadOnly>
<Height>5</Height>
<ContextMenu name="ТекстАлгоритмаКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="ТекстАлгоритмаРасширеннаяПодсказка" id="27"/>
</TextDocumentField>
</ChildItems>
<Attributes>
<Attribute name="Список" id="1">
<Type>
<v8:Type>cfg:DynamicList</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead>
<MainTable>Catalog.ирАлгоритмы</MainTable>
<ListSettings>
<dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</dcsset:userSettingID>
</dcsset:filter>
<dcsset:order>
<dcsset:item xsi:type="dcsset:OrderItemField">
<dcsset:field>ДатаИзменения</dcsset:field>
<dcsset:orderType>Desc</dcsset:orderType>
</dcsset:item>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</dcsset:userSettingID>
</dcsset:order>
<dcsset:conditionalAppearance>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</dcsset:userSettingID>
</dcsset:conditionalAppearance>
</ListSettings>
</Settings>
</Attribute>
<Attribute name="ПараметрГлобальныхКомандИис" id="7999">
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="КонсольКода" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Консоль кода</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Консоль кода</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКонсольКода</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Action>КонсольКода</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="НастройкиАлгоритмов" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки справочника</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки справочника</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирНастройкиАлгоритмов</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>НастройкиВыполненияАлгоритмов</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,23 @@
&НаКлиенте
Процедура КонсольКода(Команда)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ТекущаяСтрока = Элементы.Список.ТекущаяСтрока;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Справочники[ирОбщий.ОтделитьРазделителемЛкс(Список.ОсновнаяТаблица)].ОткрытьКонсольКодаДляАлгоритма(ТекущаяСтрока.Ссылка);
#КонецЕсли
КонецПроцедуры
&НаКлиенте
Процедура НастройкиВыполненияАлгоритмов(Команда)
ирОбщий.ОткрытьНастройкиАлгоритмовЛкс();
КонецПроцедуры

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<Form uuid="dfc6daf1-67ea-4070-8f07-213451065108">
<Properties>
<Name>ФормаЭлемента</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма элемента</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,471 @@
Перем ПолеТекстовогоДокументаСКонтекстнойПодсказкой;
Перем мЗначенияПараметров;
Процедура ПередЗаписью(Отказ)
Если Не ПроверитьДанные() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
СинтаксическийКонтрольПередЗаписью = ирКэш.Получить().СинтаксическийКонтрольПередЗаписью;
Если СинтаксическийКонтрольПередЗаписью = Истина Тогда
ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
Если Не ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПроверитьПрограммныйКод() Тогда
Ответ = Вопрос("При проверке текста алгоритма обнаружены ошибки. Продолжить?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Не Отказ Тогда
ТекстАлгоритма = ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента.ПолучитьТекст();
КонецЕсли;
КонецПроцедуры
Процедура ПриИзмененииДанных()
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента.УстановитьТекст(ТекстАлгоритма);
КонецПроцедуры
Функция ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров()
ирОбщий.ИнициализироватьГлобальныйКонтекстПодсказкиЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой);
// Локальный контекст
СтруктураПараметров = Новый Структура;
Для Каждого СтрокаПараметра Из Параметры Цикл
СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
Если СтрокаПараметра.Значение <> Неопределено Тогда
МассивТипов = Новый Массив;
МассивТипов.Добавить(ТипЗнч(СтрокаПараметра.Значение));
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ДобавитьСловоЛокальногоКонтекста(
СтрокаПараметра.Имя, "Свойство", Новый ОписаниеТипов(МассивТипов), , , СтрокаПараметра.Значение);
КонецЕсли;
//Если Не ПустаяСтрока(СтрокаПараметра.ДопустимыеТипы) Тогда
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ДобавитьПеременнуюЛокальногоКонтекста(
СтрокаПараметра.Имя, СтрокаПараметра.ДопустимыеТипы);
//КонецЕсли;
КонецЦикла;
// Результат
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ДобавитьСловоЛокальногоКонтекста(
"Результат", "Свойство", Новый ОписаниеТипов(Новый Массив));
Возврат СтруктураПараметров;
КонецФункции // ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров()
// @@@.КЛАСС.ПолеТекстовогоДокументаСКонтекстнойПодсказкой
Процедура КлсПолеТекстовогоДокументаСКонтекстнойПодсказкойНажатие(Кнопка)
СтруктураПараметров = ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
// Специальная обработка команд компоненты ДО
КомпонентаТекстаАлгоритма = ПолеТекстовогоДокументаСКонтекстнойПодсказкой;
Если Ложь
Или Кнопка = ирОбщий.ПолучитьКнопкуКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой, "Выполнить")
Или Кнопка = ирОбщий.ПолучитьКнопкуКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой, "Проверить")
Тогда
Если Не ПроверитьДанные() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если Кнопка = ирОбщий.ПолучитьКнопкуКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой, "Выполнить") Тогда
Если ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПроверитьПрограммныйКод() Тогда
Если Модифицированность Тогда
Ответ = Вопрос("Перед выполнением алгоритм необходимо сохранить. Выполнить сохранение?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
Если Не ЗаписатьВФорме() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ирКэш.Получить().ВыполнитьМетодАлгоритма(ЭтотОбъект, 1, СтруктураПараметров);
КонецЕсли;
Иначе
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.Нажатие(Кнопка);
КонецЕсли;
КонецПроцедуры
// @@@.КЛАСС.ПолеТекстовогоДокументаСКонтекстнойПодсказкой
Процедура КлсПолеТекстовогоДокументаСКонтекстнойПодсказкойАвтоОбновитьСправку()
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.АвтоОбновитьСправку();
КонецПроцедуры
Функция ПоказатьОшибкуВыполнения(ИнформацияОбОшибке, Знач ТекстСообщения = "", РежимВыполненияАлгоритма = 0, СтартоваяСтрока = 0) Экспорт
Если Не Открыта() Тогда
Открыть();
КонецЕсли;
Если Не ВводДоступен() Тогда
Активизировать();
КонецЕсли;
ВыполнятьАлгоритмыЧерезВнешниеОбработки = ирКэш.Получить().ВыполнятьАлгоритмыЧерезВнешниеОбработки;
Если ВыполнятьАлгоритмыЧерезВнешниеОбработки Тогда
ОбновитьСвязи();
КонецЕсли;
ТекущийЭлемент = ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента;
Если Ложь
Или РежимВыполненияАлгоритма = 0
Или РежимВыполненияАлгоритма = 1
Тогда
ИмяМодуля = "ВнешняяОбработка." + Наименование;
Если ирКэш.Получить().ИДВерсииПлатформы = "82" Тогда
ИмяМодуля = ИмяМодуля + ".МодульОбъекта";
КонецЕсли;
Иначе
ИмяМодуля = "";
КонецЕсли;
Если ТекстСообщения = "" Тогда
ТекстСообщения = "Ошибка при выполнении алгоритма """ + Наименование + """ в режиме " + РежимВыполненияАлгоритма;
КонецЕсли;
Сообщить(ТекстСообщения, СтатусСообщения.Важное);
ТекстИстиннойОшибки = ирОбщий.ПоказатьОшибкуВЗапросеИлиПрограммномКодеЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента,
СтартоваяСтрока, , , МодальныйРежим, ИнформацияОбОшибке, ИмяМодуля);
Возврат ТекстИстиннойОшибки;
КонецФункции // ПоказатьОшибкуВыполнения()
Процедура ОбновитьСвязи()
ФайлНовее = Ложь;
ДобавокЗаголовка = "";
ФайлВнешнейОбработки = ирКэш.Получить().ПолучитьФайлВнешнейОбработкиАлгоритма(ЭтотОбъект);
Если ФайлВнешнейОбработки.Существует() Тогда
Если ФайлВнешнейОбработки.ПолучитьВремяИзменения() + ирКэш.ПолучитьСмещениеВремениЛкс() > ДатаИзменения Тогда
ДобавокЗаголовка = " [файл новее!]";
ФайлНовее = Истина;
КонецЕсли;
КонецЕсли;
Если ФайлНовее Тогда
НовыйЦветРамки = WebЦвета.Красный;
Иначе
НовыйЦветРамки = WebЦвета.Зеленый;
КонецЕсли;
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента.ЦветРамки = НовыйЦветРамки;
ЭлементыФормы.Наименование.ТолькоПросмотр = ФайлНовее;
Заголовок = Метаданные().Представление() + ДобавокЗаголовка;
КонецПроцедуры // ОбновитьСвязи()
Процедура ПриОткрытии()
ЭтаФорма.ЗакрыватьПриВыборе = Ложь;
ВыполнятьАлгоритмыЧерезВнешниеОбработки = ирКэш.Получить().ВыполнятьАлгоритмыЧерезВнешниеОбработки;
Если ВыполнятьАлгоритмыЧерезВнешниеОбработки Тогда
ПодключитьОбработчикОжидания("ОбновитьСвязи", 5);
ОбновитьСвязи();
КонецЕсли;
КнопкиПанели = ЭлементыФормы.КоманднаяПанельТекстАлгоритма.Кнопки;
КнопкиПанели.ОбновитьИзФайла.Доступность = ВыполнятьАлгоритмыЧерезВнешниеОбработки;
КнопкиПанели.ОткрытьВОтладчике.Доступность = ВыполнятьАлгоритмыЧерезВнешниеОбработки;
КонецПроцедуры
Процедура КоманднаяПанельТекстАлгоритмаОбновитьИзФайла(Кнопка)
ФайлВнешнейОбработки = ирКэш.Получить().ПолучитьФайлВнешнейОбработкиАлгоритма(ЭтотОбъект);
ТекстАлгоритмаИзФайла = ирКэш.Получить().ПолучитьТекстМодуляВнешнейОбработкиАлгоритма(ФайлВнешнейОбработки);
Если ТекстАлгоритмаИзФайла <> Неопределено Тогда
// %%%%% Здесь можно сделать еще и сравнение текстов
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента.УстановитьТекст(ТекстАлгоритмаИзФайла);
Сообщить("Обновление из файла прошло успешно");
ДатаИзменения = ФайлВнешнейОбработки.ПолучитьВремяИзменения() + ирКэш.ПолучитьСмещениеВремениЛкс();
Модифицированность = Истина;
ОбновитьСвязи();
Иначе
Сообщить("Обновить из файла не удалось");
КонецЕсли;
КонецПроцедуры
Процедура ПараметрыДопустимыеТипыНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Результат = ирКэш.Получить().РедактироватьДопустимыеТипы(Элемент.Значение);
Если Результат <> Неопределено Тогда
Элемент.Значение = Результат;
ОбновитьОграничениеТипаЗначения();
КонецЕсли;
КонецПроцедуры
Процедура ПараметрыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.ДопустимыеТипы.УстановитьТекст(ирКэш.Получить().ПолучитьПредставлениеДопустимыхТипов(ДанныеСтроки.ДопустимыеТипы));
ирОбщий.ТабличноеПоле_ОтобразитьПиктограммыТиповЛкс(ОформлениеСтроки, "Значение");
КонецПроцедуры
Процедура ПриЗакрытии()
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.Уничтожить();
КонецПроцедуры
Процедура КоманднаяПанельТекстАлгоритмаОткрытьВОтладчике(Кнопка)
ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
Если ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПроверитьПрограммныйКод() Тогда
Если Модифицированность Тогда
Ответ = Вопрос("Перед открытием в отладчике алгоритм необходимо сохранить. Выполнить сохранение?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
Если Не ЗаписатьВФорме() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
НомерСтрокиВАлгоритме = ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолучитьНомерТекущейСтроки();
НомерСтрокиВМодуле = НомерСтрокиВАлгоритме + ПолучитьСтартовуюСтрокуМетодаВМодуле();
ИдентификаторПроцессаОтладчика = ирОбщий.ПроверитьЗапуститьОтладчик();
ирКэш.Получить().ОткрытьАлгоритмВОтладчике(ЭтотОбъект, НомерСтрокиВМодуле, ИдентификаторПроцессаОтладчика);
КонецЕсли;
КонецПроцедуры
Процедура НаименованиеПриИзменении(Элемент)
Если Не ирОбщий.ЛиИмяПеременнойЛкс(Элемент.Значение) Тогда
Элемент.Значение = ирКэш.Получить().ПолучитьИдентификаторИзПредставления(Элемент.Значение);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаВыбора(РезультатВыбора, Источник)
Если ТипЗнч(РезультатВыбора) = Тип("Структура") Тогда
Если РезультатВыбора.Свойство("ИнформацияОбОшибке") Тогда
ПоказатьОшибкуВыполнения(РезультатВыбора.ИнформацияОбОшибке, , РезультатВыбора.РежимВыполненияАлгоритма, РезультатВыбора.СтартоваяСтрока);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ДействияФормыОПодсистеме(Кнопка)
ирОбщий.ОткрытьСправкуПоПодсистемеЛкс(ЭтотОбъект);
КонецПроцедуры
Процедура ПараметрыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если Не ЗначениеЗаполнено(Элемент.ТекущиеДанные.Имя) Тогда
Элемент.ТекущиеДанные.Имя = "П" + (Элемент.Значение.Индекс(Элемент.ТекущиеДанные) + 1);
КонецЕсли;
Если НоваяСтрока И Не Копирование Тогда
Элемент.ТекущиеДанные.Вход = Истина;
КонецЕсли;
ОбновитьОграничениеТипаЗначения();
КонецПроцедуры
Процедура ОбновитьОграничениеТипаЗначения()
Если ЗначениеЗаполнено(ЭлементыФормы.Параметры.ТекущиеДанные.ДопустимыеТипы) Тогда
ОграничениеТипа = ирКэш.Получить().ПолучитьОписаниеТиповИзДопустимыхТипов(ЭлементыФормы.Параметры.ТекущиеДанные.ДопустимыеТипы);
ЭлементыФормы.Параметры.Колонки.Значение.ЭлементУправления.ОграничениеТипа = ОграничениеТипа;
ЭлементыФормы.Параметры.ТекущиеДанные.Значение = ОграничениеТипа.ПривестиЗначение(ЭлементыФормы.Параметры.ТекущиеДанные.Значение);
КонецЕсли;
КонецПроцедуры
Процедура ПараметрыНачалоПеретаскивания(Элемент, ПараметрыПеретаскивания, Выполнение)
Если ПараметрыПеретаскивания.Действие = ДействиеПеретаскивания.Перемещение Тогда
ПараметрыПеретаскивания.Значение = Элемент.ТекущаяСтрока.Имя;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельТекстАлгоритмаСсылкаНаОбъектБД(Кнопка)
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ВставитьСсылкуНаОбъектБД(ЭлементыФормы.Параметры);
КонецПроцедуры
Процедура КоманднаяПанельПараметрыЗаполнить(Кнопка)
Пока Истина Цикл
ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
ИнформацияОбОшибке = ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолучитьИнформациюОбОшибке();
НеопределеннаяПеременная = ирКэш.Получить().ПолучитьИмяНеопределеннойПеременнойИзИнформацииОбОшибке(ИнформацияОбОшибке);
Если Не ЗначениеЗаполнено(НеопределеннаяПеременная) Тогда
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПроверитьПрограммныйКод(Ложь);
Прервать;
КонецЕсли;
СтрокаПараметра = Параметры.Найти(НеопределеннаяПеременная);
Если СтрокаПараметра = Неопределено Тогда
СтрокаПараметра = Параметры.Добавить();
СтрокаПараметра.Имя = НеопределеннаяПеременная;
//СтрокаПараметра.НИмя = НРег(СтрокаПараметра.Имя);
КонецЕсли;
//СтрокаПараметра.Вход = Истина;
ЭтаФорма.Модифицированность = Истина;
КонецЦикла;
КонецПроцедуры
Процедура КоманднаяПанельТекстАлгоритмаКонсольКода(Кнопка)
СтруктураПараметров = Новый Структура;
Для Каждого СтрокаПараметра Из Параметры Цикл
СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
КонецЦикла;
ФормаКонсолиКода = ирОбщий.ОперироватьСтруктуройЛкс(ТекстАлгоритма, , СтруктураПараметров);
ФормаКонсолиКода.ТекущийАлгоритм = Ссылка;
КонецПроцедуры
Процедура КоманднаяПанельТекстАлгоритмаСгенерироватьМетод(Кнопка)
ТекстАлгоритма = ПолеТекстовогоДокументаСКонтекстнойПодсказкой.ПолеТекстовогоДокумента.ПолучитьТекст();
Объект = ЭтотОбъект;
//Объект.СобратьКонтекст(); // Можно делать и снаружи, но здесь для надежности.
Результат = "Функция " + Объект.Наименование + "(";
СтрокаПараметров = "";
ПодсказкаПараметров = "";
СмещениеИндекса = 0;
Для Индекс = 0 ПО Объект.Параметры.Количество() - 1 Цикл
ВнешнийПараметр = Объект.Параметры[Индекс];
ИмяПараметра = ВнешнийПараметр.Имя;
Если СтрокаПараметров <> "" Тогда
СтрокаПараметров = СтрокаПараметров + ", ";
КонецЕсли;
//Если ВнешнийПараметр.Невозвращаемый Тогда
СтрокаПараметров = СтрокаПараметров + "Знач ";
//КонецЕсли;
СтрокаПараметров = СтрокаПараметров + ИмяПараметра;
ЗначениеПараметра = ВнешнийПараметр.Значение;
Если Типзнч(ЗначениеПараметра) = Тип("Строка") Тогда
СтрокаПараметров = СтрокаПараметров + " = """ + ЗначениеПараметра + """";
ИначеЕсли Типзнч(ЗначениеПараметра) = Тип("Булево") Тогда
СтрокаПараметров = СтрокаПараметров + " = " + ?(ЗначениеПараметра, "Истина", "Ложь");
ИначеЕсли Типзнч(ЗначениеПараметра) = Тип("Число") Тогда
СтрокаПараметров = СтрокаПараметров + " = " + Формат(ЗначениеПараметра, "ЧН=; ЧГ=");
КонецЕсли;
ТипХмл = XMLТипЗнч(ЗначениеПараметра);
Если Истина
И ТипХмл <> Неопределено
И Найти(ТипХмл.ИмяТипа, "Ref.") > 0
Тогда
ОбъектМД = ЗначениеПараметра.Метаданные();
СтрокаКлассаМД = ирКэш.Получить().ПолучитьСтрокуТипаМетаОбъектов(ирОбщий.ПолучитьПервыйФрагментЛкс(ОбъектМД.ПолноеИмя()));
ПодсказкаПараметров = ПодсказкаПараметров + Символы.ПС + Символы.Таб + ИмяПараметра + " = " + СтрокаКлассаМД.Множественное
+ "." + ОбъектМД.Имя + ".ПустаяСсылка();";
КонецЕсли;
КонецЦикла;
Результат = Результат + СтрокаПараметров + ") Экспорт" + Символы.ПС;
Если ПодсказкаПараметров <> "" Тогда
ПодсказкаПараметров = "
| #Если Сервер И Не Сервер Тогда" + ПодсказкаПараметров + "
| #КонецЕсли";
КонецЕсли;
Результат = Результат + Символы.Таб ;
//МассивСлужебныхПеременных = мВнешниеПараметры.Выгрузить("Наименование"); // Так не будет работать при использовании Выполнить (без функции)
МассивСлужебныхПеременных = Новый Массив;
Если МассивСлужебныхПеременных.Найти("ЭтотОбъект") = Неопределено Тогда
МассивСлужебныхПеременных.Добавить("ЭтотОбъект");
КонецЕсли;
Если МассивСлужебныхПеременных.Найти("Результат") = Неопределено Тогда
МассивСлужебныхПеременных.Добавить("Результат");
КонецЕсли;
Разделитель = ", ";
СтрокаСлужебных = "";
Для Каждого СлужебнаяПеременная Из МассивСлужебныхПеременных Цикл
СтрокаСлужебных = СтрокаСлужебных + Разделитель + СлужебнаяПеременная;
КонецЦикла;
СтрокаСлужебных = Сред(СтрокаСлужебных, СтрДлина(Разделитель) + 1);
Результат = Результат + "Перем " + СтрокаСлужебных + ";";
Результат = Результат + ПодсказкаПараметров;
мПлатформа = ирКэш.Получить();
ТекстПолученияКэшей = "";
Результат = Результат + Символы.ПС + мПлатформа.МаркерНачалаАлгоритма;
Для Сч1 = 1 По СтрЧислоСтрок(Объект.ТекстАлгоритма) Цикл
Результат = Результат + Символы.Таб + СтрПолучитьСтроку(Объект.ТекстАлгоритма, Сч1) + Символы.ПС;
КонецЦикла;
//#Если Клиент Или ВнешнееСоединение Тогда
//мПлатформа = ирКэш.Получить();
//#КонецЕсли
Результат = Результат + мПлатформа.МаркерКонцаАлгоритма;
Если Найти(НРег(Объект.ТекстАлгоритма), НРег("~Конец")) > 0 Тогда
Результат = Результат + Символы.Таб + "; ~Конец:" + Символы.ПС;
КонецЕсли;
Результат = Результат + Символы.Таб + "Возврат Результат;" + Символы.ПС;
Результат = Результат + "КонецФункции" + Символы.ПС;
ирОбщий.ОткрытьТекстЛкс(Результат, , "ВстроенныйЯзык", Истина);
КонецПроцедуры
Процедура ПараметрыЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ПолеВводаКолонкиРасширенногоЗначения_НачалоВыбораЛкс(ЭлементыФормы.Параметры, СтандартнаяОбработка, , Истина);
КонецПроцедуры
Процедура ПараметрыПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда
СтандартнаяОбработка = Ложь;
ПараметрыПеретаскивания.ДопустимыеДействия = ДопустимыеДействияПеретаскивания.КопированиеИПеремещение;
КонецЕсли;
КонецПроцедуры
Процедура ПараметрыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Колонка)
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда
ЭлементыФормы.Параметры.ВыделенныеСтроки.Очистить();
Для Каждого ЭлементМассива Из ПараметрыПеретаскивания.Значение Цикл
Если Метаданные.НайтиПоТипу(ТипЗнч(ЭлементМассива)) = Метаданные.НайтиПоТипу(ТипЗнч(Параметры)) Тогда
НоваяСтрока = Параметры.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЭлементМассива);
ЭлементыФормы.Параметры.ВыделенныеСтроки.Добавить(НоваяСтрока);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ДействияФормыОтображатьПараметры(Кнопка)
ПоказатьСвернутьНастройки(Не ЭлементыФормы.ДействияФормы.Кнопки.ОтображатьПараметры.Пометка);
КонецПроцедуры
Процедура ПоказатьСвернутьНастройки(Видимость = Истина)
ЭлементыФормы.ДействияФормы.Кнопки.ОтображатьПараметры.Пометка = Видимость;
ирОбщий.ИзменитьСвернутостьЛкс(Видимость, ЭлементыФормы.Панель1, ЭлементыФормы.Разделитель1, ЭтаФорма.Панель, "верх");
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПоказатьСвернутьНастройки();
КонецПроцедуры
Процедура ПослеЗаписи()
ОповеститьОВыборе(Ссылка);
КонецПроцедуры
// +++.КЛАСС.ПолеТекстовогоДокументаСКонтекстнойПодсказкой
ПолеТекстовогоДокументаСКонтекстнойПодсказкой = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой");
#Если Сервер И Не Сервер Тогда
ПолеТекстовогоДокументаСКонтекстнойПодсказкой = Обработки.ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.Создать();
#КонецЕсли
ПолеТекстовогоДокументаСКонтекстнойПодсказкой.Инициализировать(, ЭтаФорма, ЭлементыФормы.ТекстАлгоритма,
ЭлементыФормы.КоманднаяПанельТекстАлгоритма, , "ВыполнитьЛокально", ЭтотОбъект);
// ---.КЛАСС.ПолеТекстовогоДокументаСКонтекстнойПодсказкой

View File

@ -30,14 +30,6 @@
<v8:lang>ru</v8:lang>
<v8:content>.Редактировать объект (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>.Редактировать объект (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>.Редактировать объект (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Справочник-команда. Во вводе на основании нужно указать все типы объектов, для которых применяется команда.</Comment>
<Hierarchical>false</Hierarchical>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<Form uuid="6c6a1433-f6e8-4148-bb93-9e91fdc597a2">
<Properties>
<Name>ФормаЭлемента</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма элемента</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,11 @@
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Отказ = Истина;
// Может, ссылки еще не существует? надо сначала записать объект
Если Не ЗначениеЗаполнено(ПараметрОснование) Тогда
Сообщить("Сначала запишите объект!");
Возврат;
КонецЕсли;
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(ПараметрОснование);
КонецПроцедуры

View File

@ -0,0 +1,119 @@
{27,
{18,
{
{1,0},6,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{13,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0},25,0,0,0,0,0,0,
{4,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,10,0,1,2,0,0,0,0},
{2,392,1,1,3,0,0,8,0},
{2,292,0,1,4,0,0,8,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{0}
},400,300,1,0,1,4,4,62,400,300,96},
{
{1},3,
{1,
{
{1},0,0,1,"ПланОбменаОбъект",
{"Pattern",
{"#",35c0e59d-d6af-46c0-9116-7e4d88e7182a}
}
}
},
{0}
},
{c5251418-7f99-4a2f-ba62-7f3c9e7bf914,1,
{2,0,
{0},0}
},
{1,
{70000,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПередОткрытием",
{1,"ПередОткрытием",
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{4,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""}
},1,2,0,0,1,1}

View File

@ -30,14 +30,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Hierarchical>false</Hierarchical>
@ -45,7 +37,7 @@
<LimitLevelCount>false</LimitLevelCount>
<LevelCount>2</LevelCount>
<FoldersOnTop>true</FoldersOnTop>
<UseStandardCommands>false</UseStandardCommands>
<UseStandardCommands>true</UseStandardCommands>
<Owners/>
<SubordinationUse>ToItems</SubordinationUse>
<CodeLength>5</CodeLength>
@ -311,7 +303,7 @@
<AuxiliaryObjectForm/>
<AuxiliaryFolderForm/>
<AuxiliaryListForm>Catalog.ирОбъектыДляОтладки.Form.ФормаСпискаУП</AuxiliaryListForm>
<AuxiliaryChoiceForm>Catalog.ирОбъектыДляОтладки.Form.ФормаСпискаУП</AuxiliaryChoiceForm>
<AuxiliaryChoiceForm/>
<AuxiliaryFolderChoiceForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<BasedOn/>
@ -338,14 +330,6 @@
<v8:lang>ru</v8:lang>
<v8:content>XML</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>XML</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>XML</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -390,14 +374,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Дата изменения</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -441,14 +417,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Число символов</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Число символов</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Число символов</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
@ -496,14 +464,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Отладить</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Отладить</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Отладить</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>FormCommandBarImportant</Group>
@ -522,35 +482,6 @@
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</Command>
<Command uuid="308b5d90-8b09-4fcd-b7ba-8b31bed1b4d9">
<Properties>
<Name>Команда1</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Объекты для отладки (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>CommandGroup.ирРазработка</Group>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Shortcut/>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</Command>
</ChildObjects>
</Catalog>
</MetaDataObject>

View File

@ -0,0 +1,13 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ОтладитьОтложенныйОбъектЛкс(ПараметрКоманды);
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,22 @@
// Параметры - ТаблицаЗначений с колонкой Имя
Функция ПараметрыКорректны(Параметры) Экспорт
Результат = Истина;
Если Параметры.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
Для Каждого СтрокаПараметра Из Параметры Цикл
Если Не ирОбщий.ЛиИмяПеременнойЛкс(СтрокаПараметра.Имя) Тогда
Результат = Ложь;
Сообщить("Имя параметра """ + СтрокаПараметра.Имя + """ не отвечает правилам формирования имен встроенного языка",
СтатусСообщения.Внимание);
КонецЕсли;
КонецЦикла;
НеуникальныеИмена = ирОбщий.ПолучитьНеуникальныеЗначенияКолонкиТаблицыЛкс(Параметры, "Имя");
Для Каждого НеуникальноеИмя Из НеуникальныеИмена Цикл
Сообщить("Параметр """ + НеуникальноеИмя + """ встречается более одного раза", СтатусСообщения.Внимание);
Результат = Ложь;
КонецЦикла;
Возврат Результат;
КонецФункции // ПараметрыКорректны()

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<Form uuid="2be6eae3-1743-49aa-afb0-66a78bcb06b5">
<Properties>
<Name>ФормаСписка</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма списка</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,35 @@

Процедура ДействияФормыМенеджерТабличногоПоля(Кнопка)
ирОбщий.ОткрытьМенеджерТабличногоПоляЛкс(ЭлементыФормы.СправочникСписок, ЭтаФорма);
КонецПроцедуры
Процедура ДействияФормыОПодсистеме(Кнопка)
ирОбщий.ОткрытьСправкуПоПодсистемеЛкс(ТипЗнч(СправочникСписок));
КонецПроцедуры
Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущаяСтрока <> Неопределено Тогда
Текст = Элемент.ТекущаяСтрока.XML;
Иначе
Текст = "";
КонецЕсли;
ЭлементыФормы.ПолеТекстовогоДокумента.УстановитьТекст(Текст);
КонецПроцедуры
Процедура ДействияФормыОтладить(Кнопка)
Ссылка = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
Если Ссылка = Неопределено Тогда
Возврат;
КонецЕсли;
ирОбщий.ОтладитьОтложенныйОбъектЛкс(Ссылка);
КонецПроцедуры
Порядок.Установить("ДатаИзменения Убыв");

View File

@ -0,0 +1,778 @@
{27,
{18,
{
{1,1,
{"ru","Справочник Объекты для отладки (ИР)"}
},4,4294967295},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{16,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0,0},26,1,
{0,3,1},2,
{0,3,1},
{0,4,1},1,
{0,2,2},4,
{0,1,3},
{0,2,3},
{0,3,3},
{0,4,3},0,0,
{8,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0,0},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{8,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,2,0,0},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,33,0,1,2,0,0,0,0},
{2,528,1,1,3,0,0,8,0},
{2,293,0,1,4,0,0,8,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0,0},
{0}
},
{4,
{ea83fe3a-ac3c-4cce-8045-3dddf35b28b1,1,
{5,
{"Pattern",
{"#",1d72fea9-54fa-461e-ac39-325b6734c106}
},
{
{16,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,0},0,0,100,0,0},
{19,117644845,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-14}
},
{3,3,
{-15}
},
{3,3,
{-13}
},2,2,0,0,0,0,0,1,1,
{7,2,0,
{-20},1,100},
{7,2,0,
{-20},1,100},2,0,1,
{5,
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{17,
{1,0},
{1,0},
{1,0},24,0,-1,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"Картинка",
{},4,1,
{1,0},
{"Pattern",
{"S",10,1}
},0,1,00000000-0000-0000-0000-000000000000,0,0,0},
{-1},
{-1},
{-1}
},1}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{17,
{1,1,
{"ru","Код"}
},
{1,0},
{1,0},35,3,-1,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"Код",
{},5,0,
{1,0},
{"Pattern",
{"N",5,0,1}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVA7DsIwDAXGSr1EZkeyk6ZpLoFYOECBrgyoW5WT
MXAkrkBil4DKp4niPj877znrzYq/+/U2BairSe36cRwuZ8Vgq8ABAsW6ijkhm1qg
jCw0OeCTXWIPNjcDIcb0wxU2B23Mr55PLB1+mTD0yrAbTV1WSYuzBCgwqUvSInwu
4pOHTMpsUu1VLFGpUoRCz1XInKa8M6+k6Q9bbvhi8s1Q67035KA8EU8Xet829mQ0
hSHoxg1Gd12w2nR4OAYKrg9e9JcToMzALzrfyKIkZsRCfAA=},0},0,0,0},
{-2},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{17,
{1,1,
{"ru","Наименование"}
},
{1,0},
{1,0},187,1,-1,-1,-1,12598784,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"Наименование",
{},27,0,
{1,0},
{"Pattern",
{"S",150,1}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVA7DsIwDEWwVeISmR3JTtKmuQUS4gAFujIgNpST
MXAkrkBslwLlk0Ry3rNf/JzFfCbrdrmeEyyrs1l1p1N/PBgBawNUI1BeVpkJPdQA
MfIQOOAjO8URPBQxEGIuF6nwHKxzvzSfWBVxSjh6MuLGUstdyhaWABWW7kp6VKxF
8Ip4SN5BbZqNyWM05k1U6KEKJWeJD+eNiv5kxxe+2Hyx1MQYHdUwfpLMl7rYBL93
llKfbKh7Z9s2eeta3O4SpbpLUftPJ0CdQf50eFGakppRC/kO},0},0,0,0},
{-3},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{17,
{1,1,
{"ru","Дата изменения"}
},
{1,0},
{1,0},111.0000000000001,2,-1,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"ДатаИзменения",
{},16,0,
{1,0},
{"Pattern",
{"D"}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVA7EsIgENXWmVyCGmZ2gQToPYCNB4ia1sJJl+Fk
Fh7JA9gIu/koflhmlvf295bHekXnfr0NQVabQezavu8uZ0FgK2K1ifnJFxuJGRlp
s4MpWmInjYSUigAxPSjDZKe0/lXzibnClYTGhSE1Cn2ekoxYlMAwTWfSgFwMC5/N
skixF3H2QrwlJXrMAoopzDfHBRf9ieqpwxeRL8Ia55zGWs5fRNuF1jXWnLTC0AVl
604r74NR2sPhGDDUbXA8v9wAeAf60bEjDUUWwxLiEw==},0},0,0,0},
{0,ef3c7e63-7dc3-4e7a-a871-daaa0e3dd570},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{17,
{1,1,
{"ru","Число символов"}
},
{1,0},
{1,0},77,4,-1,-1,-1,12590592,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},16,16,d2314b5d-8da4-4e0f-822b-45e7500eae09,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},
{7,3,0,1,100},
{7,3,0,1,100},1,0,0,4,0,"ЧислоСимволов",
{},11,0,
{1,0},
{"Pattern",
{"N",10,0,0}
},0,1,381ed624-9217-4e63-85db-c4c3cb87daae,
{
{#base64:AgFTS2/0iI3BTqDV67a9oKcNfVA7DsIwDEWwVeolMjtSnLRNcgnEwgEKdGVA3aqc
jIEjcQViuwqoBeJIzvPz5zm77YbP8/6YItTVpA79OA63q2KwV4AGsqW6ShSRix0g
IQcNucIusQeXizH3MCk/OMOR09b+qlljqfDLgMV3hNVoDDSF1BJEMALzdAk6A2vD
OYddIyrVUaXilSpZRug5yzCnkS7xSor+sKXDF5UfijrvvcUWyh/xerH3XeMuVmMc
om7aweoQotM2mNM5Ymz76GX+cgMjO/CXzh15KIoYkZBe},0},0,0,0},
{0,9f461635-e06c-4b93-8ded-ffcebdb55a8b},
{-1},
{-1}
},0}
}
},0,0,0,0,0,0,0,100,1,2}
},
{99f52caa-7b96-4bd4-a649-aedbd230a555,
{12,0,0,1,1,2,1,0,
{0},
{1,0},
{3,1},0}
},
{1,
{35,e1692cc2-605b-4535-84dd-28440238746c,
{3,"СправочникСписокПриАктивизацииСтроки",
{1,"СправочникСписокПриАктивизацииСтроки",
{1,1,
{"ru","Справочник список при активизации строки"}
},
{1,1,
{"ru","Справочник список при активизации строки"}
},
{1,1,
{"ru","Справочник список при активизации строки"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
}
},
{8,8,33,528,167,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,3,0,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,0,2,0,0},
{14,"СправочникСписок",4294967295,0,0,0},
{0}
},
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{16,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},4,1,0,00000000-0000-0000-0000-000000000000},
{1,0},0,0,100,0,0},9,2,1,0,1,1,
{5,fd3fe296-ace1-4714-8a0e-a902b716c8d3,359,1,6,
{6,274b0f72-07e0-44b4-9152-12f0fad66521,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,3aa1162d-4d71-4e8e-a293-7d7630a13ddb,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ДействияФормыОтладить",
{1,"ДействияФормыОтладить",
{1,1,
{"ru","Действия формы отладить"}
},
{1,1,
{"ru","Действия формы отладить"}
},
{1,1,
{"ru","Действия формы отладить"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},7,
{1,1,
{"ru","Отладить"}
},
{1,1,
{"ru","Отладить"}
},
{4,1,
{0,5f19d61d-030e-4b03-820d-c1997cb9137a},"",-1,-1,0,0,""}
},
{6,ef8539a9-2b31-40f0-a804-aac4d7457ed5,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,0d98b734-1fd9-4d0b-92d4-97a6d881b0f7,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ДействияФормыОПодсистеме",
{1,"ДействияФормыОПодсистеме",
{1,2,
{"ru","О подсистеме"},
{"en","О подсистеме"}
},
{1,2,
{"ru","О подсистеме"},
{"en","О подсистеме"}
},
{1,2,
{"ru","О подсистеме"},
{"en","О подсистеме"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},1,
{4,1,
{0,f4bd79b3-3b25-494b-99c4-74b39341e007},"",-1,-1,0,0,""}
},
{6,2e1e727c-c338-4ff7-a192-400d0a490a68,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0},
{6,f1ac4b7c-4400-4300-9329-ae47ea0dbe47,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ДействияФормыМенеджерТабличногоПоля",
{1,"ДействияФормыМенеджерТабличногоПоля",
{1,2,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"}
},
{1,2,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"}
},
{1,2,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},7,
{1,1,
{"ru","Менеджер табличного поля"}
},
{1,1,
{"ru","Менеджер табличного поля"}
},
{4,3,
{0},"",-1,-1,0,
{
{#base64:R0lGODlhEAAQADMAACH5BAEAAAEALAAAAAAQABAAo////wEAAK6u5MHB60pKwoaG
1wAAzOrq+AC0AzY2oHJy0AAAAF1dyQAAAAAAAAAAAARzkMhJU7iYDMBHUYkSINil
AR4RjghZaoUqtnQZaGuwBIZuFwOC6NLrBTgCAJBwACQBhmZAQBUsC1WBAXt0KoPN
ZxRwxH4TBe9gS0YqNWHOuJxUFdLJdbr7PDS9UFJKeQOFTgaIiHwcjF6JB3QohRt5
BgxkEQA7}
},0,""}
},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,6,274b0f72-07e0-44b4-9152-12f0fad66521,
{8,"Разделитель4",0,1,
{1,1,
{"ru","Действие9"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,17,1e2,2,0,1,0,0,0,0},3aa1162d-4d71-4e8e-a293-7d7630a13ddb,
{8,"Отладить",0,2,
{1,1,
{"ru","Отладить"}
},1,fd3fe296-ace1-4714-8a0e-a902b716c8d3,80,1e2,0,3,1,0,0,0,0},ef8539a9-2b31-40f0-a804-aac4d7457ed5,
{8,"Разделитель5",0,1,
{1,1,
{"ru","Действие9"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,81,1e2,2,0,1,0,0,0,0},f1ac4b7c-4400-4300-9329-ae47ea0dbe47,
{8,"МенеджерТабличногоПоля",0,1,
{1,1,
{"ru","Менеджер табличного поля"}
},1,fd3fe296-ace1-4714-8a0e-a902b716c8d3,16,1e2,0,0,1,0,0,0,0},2e1e727c-c338-4ff7-a192-400d0a490a68,
{8,"Разделитель7",0,4,
{1,1,
{"ru","Действие6"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,33,1e2,2,0,1,0,0,0,0},0d98b734-1fd9-4d0b-92d4-97a6d881b0f7,
{8,"ОПодсистеме",0,4,
{1,1,
{"ru","О подсистеме"}
},1,fd3fe296-ace1-4714-8a0e-a902b716c8d3,34,1e2,0,0,1,0,0,0,0},
{0,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,0,0,536,25,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,2,0,25},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,2,1},0,0,0,0,0,0,1,1,1,0},
{14,"ДействияФормы",0,0,0,0},
{0}
},
{36e52348-5d60-4770-8e89-a16ed50a2006,3,
{0,
{
{16,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},1,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{-18},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0,0},2,2,0}
},
{8,8,167,528,173,1,
{0,
{2,3,1,-6},
{2,-1,6,0}
},
{0,
{2,0,0,173},
{2,0,1,-128}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,1,1},2,
{0,3,0},
{0,4,0},0,0,0,0,0,2,3,0,0},
{14,"Разделитель1",4294967295,0,0,0},
{0}
},
{14c4a229-bfc3-42fe-9ce1-2da049fd0109,4,
{
{16,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,3,
{-22}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0,0},6,1,d9c193cd-5f8a-4415-ac37-bcb084dae76e,
{0},1,0},
{8,8,174,528,293,1,
{0,
{2,3,1,1},
{2,-1,6,0}
},
{0,
{2,0,1,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,3,4,0,0},
{14,"ПолеТекстовогоДокумента",4294967295,0,0,0},
{0}
}
}
},536,301,1,0,1,4,4,43,536,301,96},
{
{0},2,
{1,
{
{0},0,0,1,"СправочникСписок",
{"Pattern",
{"#",1d72fea9-54fa-461e-ac39-325b6734c106}
}
}
},
{1,
{1,
{1,
{0}
}
}
}
},
{53fb5449-841a-459c-9a83-576f05941e1f,0},
{0},1,4,1,0,0,0,
{0},
{0,d4fb5140-8838-483f-9452-47ac6138c9d1},
{8,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0,0},1,2,0,0,1,1}

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Форма списка УП</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Форма списка УП</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Форма списка УП</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<VerticalScroll>useIfNecessary</VerticalScroll>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ПоискВСправкеГлобальнаяИис" id="7999">
<Type>CommandBarButton</Type>
<CommandName>0</CommandName>
<DataPath>ПараметрГлобальныхКомандИис</DataPath>
<LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ПоискВСправкеГлобальнаяИисРасширеннаяПодсказка" id="8000"/>
</Button>
<Button name="ФормаОбщаяКомандаирОПодсистеме" id="8001">
<Type>CommandBarButton</Type>
<CommandName>CommonCommand.ирОПодсистеме</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="8002"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ChildItems>
<Table name="Список" id="1">
<Representation>List</Representation>
<CommandBarLocation>None</CommandBarLocation>
<DefaultItem>true</DefaultItem>
<UseAlternationRowColor>true</UseAlternationRowColor>
<InitialTreeView>ExpandTopLevel</InitialTreeView>
<EnableStartDrag>true</EnableStartDrag>
<FileDragMode>AsFile</FileDragMode>
<DataPath>Список</DataPath>
<RowPictureDataPath>Список.DefaultPicture</RowPictureDataPath>
<SearchStringLocation>None</SearchStringLocation>
<ViewStatusLocation>None</ViewStatusLocation>
<SearchControlLocation>None</SearchControlLocation>
<AutoRefresh>false</AutoRefresh>
<AutoRefreshPeriod>60</AutoRefreshPeriod>
<Period>
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
</Period>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<RestoreCurrentRow>false</RestoreCurrentRow>
<TopLevelParent xsi:nil="true"/>
<ShowRoot>true</ShowRoot>
<AllowRootChoice>false</AllowRootChoice>
<UpdateOnDataChange>Auto</UpdateOnDataChange>
<ContextMenu name="СписокКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="3">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="18"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="19">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="20"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="21"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="22">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="23"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="24"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="25">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="26"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="27"/>
</SearchControlAddition>
<ChildItems>
<LabelField name="Код" id="14">
<DataPath>Список.Code</DataPath>
<ContextMenu name="КодКонтекстноеМеню" id="15"/>
<ExtendedTooltip name="КодРасширеннаяПодсказка" id="28"/>
</LabelField>
<LabelField name="Наименование" id="4">
<DataPath>Список.Description</DataPath>
<DefaultItem>true</DefaultItem>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="29"/>
</LabelField>
<LabelField name="ДатаИзменения" id="6">
<DataPath>Список.ДатаИзменения</DataPath>
<ContextMenu name="ДатаИзмененияКонтекстноеМеню" id="7"/>
<ExtendedTooltip name="ДатаИзмененияРасширеннаяПодсказка" id="30"/>
</LabelField>
<LabelField name="ЧислоСимволов" id="16">
<DataPath>Список.ЧислоСимволов</DataPath>
<ContextMenu name="ЧислоСимволовКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="ЧислоСимволовРасширеннаяПодсказка" id="31"/>
</LabelField>
<LabelField name="Комментарий" id="8">
<ContextMenu name="КомментарийКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="КомментарийРасширеннаяПодсказка" id="32"/>
</LabelField>
</ChildItems>
</Table>
<TextDocumentField name="XML" id="10">
<DataPath>Items.Список.CurrentData.XML</DataPath>
<ReadOnly>true</ReadOnly>
<ContextMenu name="XMLКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="XMLРасширеннаяПодсказка" id="33"/>
</TextDocumentField>
</ChildItems>
<Attributes>
<Attribute name="Список" id="1">
<Type>
<v8:Type>cfg:DynamicList</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead>
<MainTable>Catalog.ирОбъектыДляОтладки</MainTable>
<ListSettings>
<dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</dcsset:userSettingID>
</dcsset:filter>
<dcsset:order>
<dcsset:item xsi:type="dcsset:OrderItemField">
<dcsset:field>ДатаИзменения</dcsset:field>
<dcsset:orderType>Desc</dcsset:orderType>
</dcsset:item>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</dcsset:userSettingID>
</dcsset:order>
<dcsset:conditionalAppearance>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</dcsset:userSettingID>
</dcsset:conditionalAppearance>
</ListSettings>
</Settings>
</Attribute>
<Attribute name="ПараметрГлобальныхКомандИис" id="7999">
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
</Form>

View File

@ -6,15 +6,7 @@
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Администрирование А-Н</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Администрирование А-Н</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Администрирование А-Н</v8:content>
<v8:content>Администрирование</v8:content>
</v8:item>
</Synonym>
<Comment/>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommandGroup uuid="081cc825-776f-4903-aad7-957fd3d5b58f">
<Properties>
<Name>ирКоманднаяПанельФормы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Общее (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Category>FormCommandBar</Category>
</Properties>
</CommandGroup>
</MetaDataObject>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommandGroup uuid="da12e011-27c3-48d5-93ee-daafe5e97b3b">
<Properties>
<Name>ирНастройки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Category>ActionsPanel</Category>
</Properties>
</CommandGroup>
</MetaDataObject>

View File

@ -8,20 +8,12 @@
<v8:lang>ru</v8:lang>
<v8:content>Разработка</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Разработка</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Разработка</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Category>NavigationPanel</Category>
<Category>ActionsPanel</Category>
</Properties>
</CommandGroup>
</MetaDataObject>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="9dd86a21-181f-48c0-bc89-6b673ab7c79a">
<Properties>
<Name>ирЗапуститьОбычноеПриложение</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Запустить обычное приложение (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip/>
<Picture/>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,10 @@
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#Иначе
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="9ae5c8bb-1353-4cdc-a470-099e72eba3a1">
<Properties>
<Name>ирИсследоватьИсточник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Исследовать источник (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Передать источник команды в исследователь объектов</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирИсследовать</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.ирКомандаРедактироватьОбъект</v8:Type>
<v8:Type>cfg:CatalogRef.ирОбъектыДляОтладки</v8:Type>
<v8:Type>cfg:CatalogRef.ирАлгоритмы</v8:Type>
</CommandParameterType>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,13 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ИсследоватьЛкс(ПараметрыВыполненияКоманды.Источник);
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="60b48362-4a19-4a23-95da-9a9ce4ad14c5">
<Properties>
<Name>ирОПодсистеме</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>О подсистеме (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip/>
<Picture>
<xr:Ref>CommonPicture.ирВопрос</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,12 @@
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ОткрытьСправкуПоПодсистемеЛкс(ПараметрыВыполненияКоманды.Источник);
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="531e0dd3-aa06-4578-b614-770f30d5dd3f">
<Properties>
<Name>ирОбработатьОбъекты</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обработать объекты (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Для любых ссылочных объектов</Comment>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Передать ссылки в подбор и обработку объектов</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирОбработкаОбъектов</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
<xr:TransparentPixel x="12" y="12"/>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.ирКомандаРедактироватьОбъект</v8:Type>
<v8:Type>cfg:CatalogRef.ирОбъектыДляОтладки</v8:Type>
<v8:Type>cfg:CatalogRef.ирАлгоритмы</v8:Type>
</CommandParameterType>
<ParameterUseMode>Multiple</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,13 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ОткрытьМассивОбъектовВПодбореИОбработкеОбъектовЛкс(ПараметрКоманды);
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="28d4f17f-b806-48b1-8418-fd0477e58a10">
<Properties>
<Name>ирОперироватьИсточник</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Оперировать источник (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Для любых ссылочных объектов</Comment>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Передать источник команды в консоль кода</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКонсольКода</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.ирКомандаРедактироватьОбъект</v8:Type>
<v8:Type>cfg:CatalogRef.ирОбъектыДляОтладки</v8:Type>
<v8:Type>cfg:CatalogRef.ирАлгоритмы</v8:Type>
</CommandParameterType>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,13 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ОперироватьСтруктуройЛкс(, , Новый Структура("Источник", ПараметрыВыполненияКоманды.Источник));
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="87e29938-c7a3-4525-b8e7-e3de81a970dc">
<Properties>
<Name>ирОткрытьНастройкиАлгоритмов</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки алгоритмов (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть настройки алгоритмов</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирНастройкиАлгоритмов</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
<xr:TransparentPixel x="1" y="9"/>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,7 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ирОбщий.ОткрытьНастройкиАлгоритмовЛкс();
КонецПроцедуры

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="3330c3e5-734f-4ba1-b58c-7e86e4965d8d">
<Properties>
<Name>ирОткрытьОтладчик</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отладчик (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть отладчик</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКонфигуратор1С8</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,7 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ирОбщий.ОткрытьОтладчикЛкс();
КонецПроцедуры

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="aeab7140-6400-4306-927d-a25ab55baa7b">
<Properties>
<Name>ирОткрытьРегистрациюCOMКомпонент</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Регистрация COM компонент (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть регистрацию COM компонент (ИР)</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирCOMАдмин</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,7 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ирОбщий.ОткрытьАдминистративнаяРегистрацияCOMЛкс();
КонецПроцедуры

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="a0030abf-d497-43fa-87e5-ebcf96776a60">
<Properties>
<Name>ирОткрытьСписокИнструментов</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список инструментов и настройки (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список инструментов и общие настройки</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКоманднаяПанель</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,6 @@
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ирОбщий.ОткрытьСписокИнструментовЛкс();
КонецПроцедуры

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="d7797e42-b3ca-435e-91b0-f6be62ffccdc">
<Properties>
<Name>ирРедактироватьИзмененияНаУзле</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Редактировать изменения на узле (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Для любых планов обмена</Comment>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Передать узел в редактор изменений на узле</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирИзмененияНаУзле</xr:Ref>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,15 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
Форма = ирОбщий.ПолучитьФормуЛкс("Обработка.ирРедакторИзмененийНаУзлах.Форма");
Форма.ПараметрУзелОбмена = ПараметрКоманды;
Форма.Открыть();
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="c6fd6f8b-4a63-4a7e-b363-0d55550bf2fa">
<Properties>
<Name>ирРедактироватьОбъект</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Редактировать объект (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Для любых ссылочных объектов</Comment>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Передать объект в редактор объекта БД</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирРедактироватьОбъектБД</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
<xr:TransparentPixel x="13" y="8"/>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.ирКомандаРедактироватьОбъект</v8:Type>
<v8:Type>cfg:CatalogRef.ирОбъектыДляОтладки</v8:Type>
<v8:Type>cfg:CatalogRef.ирАлгоритмы</v8:Type>
</CommandParameterType>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,13 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ВебКлиент Тогда
Сообщить("Команда недоступна в вебклиенте");
#ИначеЕсли ТонкийКлиент Тогда
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#Иначе
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(ПараметрКоманды);
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonCommand uuid="e6f450ca-1a6b-4a24-8a0a-72c2a46c732f">
<Properties>
<Name>ирСохранитьНастройкиПользователя</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить настройки пользователя (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>ActionsPanelTools</Group>
<Representation>Auto</Representation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить настройки пользователя. Настройки окон формируются при их закрытии. Поэтому для незакрытых окон команда не будет сохранять новые варианты настроек.</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирСохранитьНастройки</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -0,0 +1,6 @@
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ирОбщий.СохранитьНастройкиПользователяЛкс();
КонецПроцедуры

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Адаптация расширения (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Адаптация расширения (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Адаптация расширения (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаВыполнить" id="1">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.Выполнить</CommandName>
<ExtendedTooltip name="ФормаВыполнитьРасширеннаяПодсказка" id="2"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnOpen">ПриОткрытии</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
<Event name="OnClose">ПриЗакрытии</Event>
</Events>
<ChildItems>
<LabelDecoration name=екорация1" id="3">
<AutoMaxWidth>false</AutoMaxWidth>
<HorizontalStretch>true</HorizontalStretch>
<TextColor>style:FieldSelectionBackColor</TextColor>
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подключение команд расширения "Инструменты разработчика" позволит передавать ссылки на объекты БД прямо из их форм элементов и списков. Снятый флажок "Подключить" приведет к отключению команды. При выполнении операции используется конфигуратор текущей базы. После этого при обновлении на новую версию подсистемы адаптация будет выполняться автоматически. После завершения операции для вступления изменений в силу сеанс будет перезапущен.
</v8:content>
</v8:item>
</Title>
<ContextMenu name=екорация1КонтекстноеМеню" id="4"/>
<ExtendedTooltip name=екорация1РасширеннаяПодсказка" id="5"/>
</LabelDecoration>
<Table name="СписокКоманд" id="6">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<FileDragMode>AsFile</FileDragMode>
<DataPath>СписокКоманд</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="СписокКомандКонтекстноеМеню" id="7"/>
<AutoCommandBar name="СписокКомандКоманднаяПанель" id="8"/>
<ExtendedTooltip name="СписокКомандРасширеннаяПодсказка" id="9"/>
<SearchStringAddition name="СписокКомандСтрокаПоиска" id="10">
<AdditionSource>
<Item>СписокКоманд</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокКомандСтрокаПоискаКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="СписокКомандСтрокаПоискаРасширеннаяПодсказка" id="12"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокКомандСостояниеПросмотра" id="13">
<AdditionSource>
<Item>СписокКоманд</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокКомандСостояниеПросмотраКонтекстноеМеню" id="14"/>
<ExtendedTooltip name="СписокКомандСостояниеПросмотраРасширеннаяПодсказка" id="15"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокКомандУправлениеПоиском" id="16">
<AdditionSource>
<Item>СписокКоманд</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокКомандУправлениеПоискомКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="СписокКомандУправлениеПоискомРасширеннаяПодсказка" id="18"/>
</SearchControlAddition>
<ChildItems>
<CheckBoxField name="СписокКомандПодключить" id="22">
<DataPath>СписокКоманд.Подключить</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подключить</v8:content>
</v8:item>
</Title>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="СписокКомандПодключитьКонтекстноеМеню" id="23"/>
<ExtendedTooltip name="СписокКомандПодключитьРасширеннаяПодсказка" id="24"/>
</CheckBoxField>
<InputField name="СписокКомандИмяКоманды" id="25">
<DataPath>СписокКоманд.СинонимКоманды</DataPath>
<ReadOnly>true</ReadOnly>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда</v8:content>
</v8:item>
</Title>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокКомандИмяКомандыКонтекстноеМеню" id="26"/>
<ExtendedTooltip name="СписокКомандИмяКомандыРасширеннаяПодсказка" id="27"/>
</InputField>
<InputField name="СписокКомандПодсказка" id="28">
<DataPath>СписокКоманд.Подсказка</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокКомандПодсказкаКонтекстноеМеню" id="29"/>
<ExtendedTooltip name="СписокКомандПодсказкаРасширеннаяПодсказка" id="30"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="СписокКоманд" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список команд</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueTable</v8:Type>
</Type>
<Columns>
<Column name="ИмяКоманды" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя команды</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Column>
<Column name="Подключить" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подключить</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
<Column name="СинонимКоманды" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Синооним команды</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Column>
<Column name="Подсказка" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Подсказка</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Column>
</Columns>
</Attribute>
</Attributes>
<Commands>
<Command name="Выполнить" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выполнить и сохранить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выполнить</v8:content>
</v8:item>
</ToolTip>
<Action>ВыполнитьОперацию</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
<Parameters>
<Parameter name="Автооткрытие">
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Parameter>
</Parameters>
</Form>

View File

@ -0,0 +1,76 @@

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ирКэш.ЛиЭтоРасширениеКонфигурацииЛкс() Тогда
Сообщить("Операция доступна только в варианте Расширение");
Отказ = Истина;
Возврат;
КонецЕсли;
ПометкиКоманд = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПометкиКоманд",, ирКэш.ИмяПродукта());
Если ПометкиКоманд = Неопределено Тогда
СохранитьНастройкиАдаптации(Истина);
КонецЕсли;
Для Каждого МетаКоманда Из Метаданные.ОбщиеКоманды Цикл
Если Истина
И Метаданные.Подсистемы.ИнструментыРазработчикаTormozit.Состав.Содержит(МетаКоманда)
И МетаКоманда.Группа.Получить() = Метаданные.ГруппыКоманд.ирКоманднаяПанельФормы
Тогда
СтрокаКоманды = СписокКоманд.Добавить();
СтрокаКоманды.ИмяКоманды = МетаКоманда.Имя;
СтрокаКоманды.СинонимКоманды = МетаКоманда.Представление();
СтрокаКоманды.Подсказка = МетаКоманда.Подсказка;
Если Истина
И ПометкиКоманд <> Неопределено
И ПометкиКоманд.Свойство(СтрокаКоманды.ИмяКоманды)
Тогда
СтрокаКоманды.Подключить = ПометкиКоманд[СтрокаКоманды.ИмяКоманды];
Иначе
СтрокаКоманды.Подключить = Ложь
Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирРедактироватьОбъект.Имя
Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирОбработатьОбъекты.Имя
Или СтрокаКоманды.ИмяКоманды = Метаданные.ОбщиеКоманды.ирРедактироватьИзмененияНаУзле.Имя;
КонецЕсли;
КонецЕсли;
КонецЦикла;
СписокКоманд.Сортировать("СинонимКоманды");
Если Параметры.Автооткрытие Тогда
Сообщить("Открыть это окно можно в разделе ""Инструменты разработчика""/""Сервис""");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьОперацию(Команда)
СохранитьНастройкиАдаптации();
Если ирОбщий.АдаптироватьРасширениеЛкс() Тогда
ЗавершитьРаботуСистемы(, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройкиАдаптации(ПустуюСтруктуру = Ложь)
ПометкиКоманд = Новый Структура;
Если Не ПустуюСтруктуру Тогда
Для Каждого СтрокаКоманды Из СписокКоманд Цикл
ПометкиКоманд.Вставить(СтрокаКоманды.ИмяКоманды, СтрокаКоманды.Подключить);
КонецЦикла;
КонецЕсли;
ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ПометкиКоманд", ПометкиКоманд,, ирКэш.ИмяПродукта());
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если ТонкийКлиент Или ВебКлиент Тогда
Отказ = Истина;
ОткрытьФорму("Обработка.ирПортативный.Форма.ФормаУправляемая");
#КонецЕсли
КонецПроцедуры

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonForm uuid="bf9fc191-543d-449c-8589-e13026f2c40c">
<Properties>
<Name>ирВыпускВариантаПортативный</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выпуск варианта Портативный (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<UseStandardCommands>false</UseStandardCommands>
<ExtendedPresentation/>
<Explanation/>
</Properties>
</CommonForm>
</MetaDataObject>

View File

@ -0,0 +1,575 @@
Перем ирПлатформа;
// Параметры:
// КаталогРаспаковки - Строка(0,П)
//
Функция ПолучитьФайлСтруктурыХранилищаОбъектаМетаданных(Знач КаталогРаспаковки = "") Экспорт
RegExp = ирПлатформа.RegExp;
RegExp.Global = Ложь;
RegExp.Pattern = "{2,(" + ирПлатформа.шGUID + "),";
ФайлКорневогоУказателя = Новый Файл(КаталогРаспаковки + "root.data.und");
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКорневогоУказателя.ПолноеИмя);
РезультатыПоиска = RegExp.Execute(ТекстовыйДокумент.ПолучитьТекст());
КорневойИД = РезультатыПоиска.Item(0).Submatches(0);
ФайлСтруктуры = Новый Файл(КаталогРаспаковки + КорневойИД + ".data.und");
Результат = ФайлСтруктуры;
Возврат Результат;
КонецФункции
// Параметры:
// ПолноеИмяФайлаВнешнейОбработки - Строка(0,П)
// ИмяФормы - Строка(0,П) - Если не указана, используется Основая форма, а если основная форма не указана, используется единственная форма. Для быстрого выполнения нужно указывать.
// МассивДобавляемыхРеквизитов - Массив - !Проверка уникальности не выполняется. Ее нужно делать снаружи
// СтарыйТекстМодуля - Строка(0,П)
//
Функция ПроверитьОбновитьМодульИРеквизитыФормыВФайле(Знач ПолноеИмяФайлаВнешнейОбработки = "", Знач ИмяФормы = "", Знач МассивДобавляемыхРеквизитов, НовыйТекстМодуля,
СтарыйТекстМодуля = "") Экспорт
ФайлВнешнейОбработки = Новый Файл(ПолноеИмяФайлаВнешнейОбработки);
Если Не ЗначениеЗаполнено(ИмяФормы) Тогда
ВнешнийОбъект = ВнешниеОбработки.Создать(ФайлВнешнейОбработки.ПолноеИмя);
ОбъектМетаданных = ВнешнийОбъект.Метаданные();
Если ОбъектМетаданных.ОсновнаяФорма <> Неопределено Тогда
ИмяФормы = ОбъектМетаданных.ОсновнаяФорма.Имя;
ИначеЕсли ОбъектМетаданных.Формы.Количество() = 1 Тогда
ИмяФормы = ОбъектМетаданных.Формы[0].Имя;
Иначе
ВызватьИсключение "Невозможно определить форму внешней обработки для обновления";
КонецЕсли;
КонецЕсли;
ИмяКаталогаСборки = "Rebuild";
ИмяКаталогаРаспаковки = ФайлВнешнейОбработки.Путь + ИмяКаталогаСборки;
КаталогРаспаковки = ИмяКаталогаРаспаковки + "\";
УдалитьФайлы(ИмяКаталогаРаспаковки, "*.*");
СоздатьКаталог(ИмяКаталогаРаспаковки);
ирПлатформа.РаспаковатьФайлВнешнейОбработки(ФайлВнешнейОбработки.ПолноеИмя, КаталогРаспаковки);
БылаМодификация = Ложь;
RegExp = ирПлатформа.RegExp;
// Получаем модуль формы и изменяем его, если не соответствует стандарту
//ФайлСпискаФорм = Новый файл(КаталогРаспаковки + "copyinfo.data.und");
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ФайлСпискаФорм.ПолноеИмя);
//RegExp.Global = Ложь;
//RegExp.Pattern = "(" + ирПлатформа.шGUID + "),1,\n\{d5b0e5ed-256d-401c-9c36-f630cafd8a62,""" + ИмяФормы + """";
//РезультатыПоиска = RegExp.Execute(ТекстовыйДокумент.ПолучитьТекст());
//СтарыеТекстыМодулейФорм = Новый Структура;
//ИДФормы = РезультатыПоиска.Item(0).Submatches(0);
ФайлСтруктуры = ПолучитьФайлСтруктурыХранилищаОбъектаМетаданных(КаталогРаспаковки);
ТекстСтруктуры = Новый ТекстовыйДокумент;
ТекстСтруктуры.Прочитать(ФайлСтруктуры.ПолноеИмя);
RegExp.Global = Ложь;
RegExp.Pattern = "\{d5b0e5ed-256d-401c-9c36-f630cafd8a62,\d+((?:," + ирПлатформа.шGUID + ")*)\}";
РезультатыПоиска = RegExp.Execute(ТекстСтруктуры.ПолучитьТекст());
ТекстСпискаИД = РезультатыПоиска.Item(0).Submatches(0);
RegExp.Global = Истина;
RegExp.Pattern = ирПлатформа.шGUID;
РезультатыПоиска = RegExp.Execute(ТекстСпискаИД);
Для Каждого Вхождение Из РезультатыПоиска Цикл
ТекстФайлаФормы = Новый ТекстовыйДокумент;
ТекстФайлаФормы.Прочитать(КаталогРаспаковки + Вхождение.Value + ".data.und");
//RegExp.Global = Ложь;
//RegExp.Pattern = Вхождение.Value + "\},""(" + ирПлатформа.шИмя + ")"";
//РезультатыПоиска2 = RegExp.Execute(ТекстФайлаФормы.ПолучитьТекст());
Маркер = Вхождение.Value + "},""" + ИмяФормы + """";
Если Найти(НРег(ТекстФайлаФормы.ПолучитьТекст()), Нрег(Маркер)) > 0 Тогда
ИДФормы = Вхождение.Value;
Прервать;
КонецЕсли;
КонецЦикла;
Если ИДФормы = Неопределено Тогда
ВызватьИсключение "Не удалось определить внутренний идентификатор формы """ + ИмяФормы + """";
КонецЕсли;
ФайлМодуляФормы = Новый Файл(КаталогРаспаковки + ИДФормы + ".0.data.und.unp\" + "module.data");
СтарыйТекстМодуляФормы = Неопределено;
Результат = Ложь;
ТекстДляПроверки = Новый ТекстовыйДокумент;
ТекстДляПроверки.Прочитать(ФайлМодуляФормы.ПолноеИмя);
ТекстОбразец = Новый ТекстовыйДокумент;
ТекстОбразец.УстановитьТекст(НовыйТекстМодуля);
СтарыйТекстМодуля = ТекстДляПроверки.ПолучитьТекст();
Если ТекстОбразец.ПолучитьТекст() <> СтарыйТекстМодуля Тогда
ТекстОбразец.Записать(ФайлМодуляФормы.ПолноеИмя);
Результат = Истина;
КонецЕсли;
Если Истина
И МассивДобавляемыхРеквизитов <> Неопределено
И МассивДобавляемыхРеквизитов.Количество() > 0
Тогда
ФайлДиалогаФормы = Новый Файл(ФайлМодуляФормы.Путь + "form.data");
ТекстДиалога = Новый ТекстовыйДокумент;
ТекстДиалога.Прочитать(ФайлДиалогаФормы.ПолноеИмя);
КоличествоНовыхРеквизитов = МассивДобавляемыхРеквизитов.Количество();
ОстатокТекста0 = ТекстДиалога.ПолучитьТекст();
RegExp.Global = Ложь;
RegExp.Pattern = "},\d+,\d+,\d+,0,\d+,4,4,\d+},";
Вхождения = RegExp.Execute(ОстатокТекста0);
Если Вхождения.Count = 0 Тогда
Сообщить("При анализе диалога не найден маркер1");
Возврат Неопределено;
ИначеЕсли Вхождения.Count > 1 Тогда
Сообщить("При анализе диалога найдено более одного маркера1");
Возврат Неопределено;
КонецЕсли;
Позиция = Вхождения.Item(0).FirstIndex;
Позиция = Позиция + СтрДлина(Вхождения.Item(0).Value);
Фрагмент1 = Лев(ОстатокТекста0, Позиция);
ОстатокТекста1 = Сред(ОстатокТекста0, Позиция + 1);
//Маркер = "},";
//Позиция = Найти(ОстатокТекста1, Маркер);
//Фрагмент2 = Лев(ОстатокТекста1, Позиция + СтрДлина(Маркер));
Фрагмент2 = "";
ОстатокТекста2 = Сред(ОстатокТекста1, СтрДлина(Фрагмент2) + 1);
Маркер = ",
|{";
Позиция = Найти(ОстатокТекста2, Маркер);
Если Позиция = 0 Тогда
Сообщить("Не найден маркер2");
Возврат Неопределено;
КонецЕсли;
Позиция = Позиция + СтрДлина(Маркер) - 1;
Фрагмент3 = Лев(ОстатокТекста2, Позиция);
ОстатокТекста3 = Сред(ОстатокТекста2, СтрДлина(Фрагмент3) + 1);
Позиция = Найти(ОстатокТекста3, "}");
Позиция2 = Найти(ОстатокТекста3, ",");
Если Позиция2 > 0 Тогда
Позиция = Мин(Позиция, Позиция2);
КонецЕсли;
Фрагмент4 = Лев(ОстатокТекста3, Позиция - 1);
ОстатокТекста4 = Сред(ОстатокТекста3, СтрДлина(Фрагмент4) + 1);
Число = Число(Фрагмент4);
Число = Число + КоличествоНовыхРеквизитов;
Фрагмент4 = Формат(Число, "ЧГ=");
Разделитель = ",";
СтрокаРеквизитов = "";
Счетчик = 1;
// Если у формы нет ни одного реквизита, то может получиться ошибка формата потока
Строка1 = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ОстатокТекста4, "},", ",""");
Если Ложь
Или Не ЗначениеЗаполнено(Строка1)
Или СтрДлина(Строка1) > 5
Тогда
// у формы нет ни одного реквизита
Если ирПлатформа.ИДВерсииПлатформы = "81" Тогда
Строка1 = "0,1";
ИначеЕсли ирПлатформа.ИДВерсииПлатформы >= "82" Тогда
// Здесь может быть нужно и "0,1" использовать, если в конфигураторе форму ни разу не сохраняли еще, а только конвертировали через ConvertFiles
// Если такое случается, то при попытке открыть такую внешнюю обработку платформа будет падать
Строка1 = "1,0,1";
КонецЕсли;
КонецЕсли;
Для Каждого ИмяРеквизита Из МассивДобавляемыхРеквизитов Цикл
СтрокаРеквизитов = СтрокаРеквизитов + Разделитель + "
|{
|{" + Формат(1000 + Счетчик, "ЧГ=") + "}," + Строка1 + ",""" + ИмяРеквизита + """,
|{""Pattern""}
|}";
Счетчик = Счетчик + 1;
КонецЦикла;
НовыйТекст = Фрагмент1 + Фрагмент2 + Фрагмент3 + Фрагмент4 + СтрокаРеквизитов + ОстатокТекста4;
ТекстДиалога.УстановитьТекст(НовыйТекст);
ТекстДиалога.Записать(ФайлДиалогаФормы.ПолноеИмя);
Результат = Истина;
КонецЕсли;
Если Результат Тогда
// Здесь часто возникает ошибка
//{Обработка.ирПлатформа.МодульОбъекта(5 163)}:
//Ошибка при вызове метода контекста (Записать)
// ПолучитьМакет("v8unpack").Записать(Каталог + "\" + ИмяФайлаПакера);
//Ошибка совместного доступа к файлу 'D:\Users\Сергей\AppData\Local\1C\1Cv82\File__D__1C_v82_DB_2iSРазработка__\b\Rebuild\v8unpack.exe'
// ВызватьИсключение Ошибка;//#Служебное
ирПлатформа.УпаковатьФайлВнешнейОбработки(КаталогРаспаковки, ФайлВнешнейОбработки.ПолноеИмя);
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ТабличныйДокументИзОбщихКартинокПодсистемы() Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ШрифтЖирный = Новый Шрифт(,,Истина);
ТабличныйДокумент.Область("R1C1:R1C1").Текст = "Имя";
ТабличныйДокумент.Область("R1C2:R1C2").Текст = "Картинка";
ТабличныйДокумент.Область("R1C1:R1C2").Шрифт = ШрифтЖирный;
Для Каждого ОбщаяКартинка Из Метаданные.ОбщиеКартинки Цикл
Если Не Метаданные.Подсистемы.ИнструментыРазработчикаTormozit.Состав.Содержит(ОбщаяКартинка) Тогда
Продолжить;
КонецЕсли;
Рисунок = ТабличныйДокумент.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = БиблиотекаКартинок[ОбщаяКартинка.Имя];
Рисунок.Имя = ОбщаяКартинка.Имя;
Рисунок.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
ВысотаТаблицы = ТабличныйДокумент.ВысотаТаблицы + 1;
ТабличныйДокумент.Область("R" + XMLСтрока(ВысотаТаблицы) + "C1:R" + XMLСтрока(ВысотаТаблицы) + "C1").Текст = ОбщаяКартинка.Имя;
Рисунок.Расположить(ТабличныйДокумент.Область("R" + XMLСтрока(ВысотаТаблицы) + "C2:R" + XMLСтрока(ВысотаТаблицы) + "C2"));
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Функция СгенерироватьМодульИнициализацииФормПодсистемыДляПортативногоРежима() Экспорт
ТекстМодуля = Новый ЗаписьXML;
ТекстМодуля.УстановитьСтроку("");
//ТекстМодуля.ЗаписатьБезОбработки("
//|Перем ирОбщий Экспорт;
//|Перем ирСервер Экспорт;
//|Перем ирКэш Экспорт;
//|Перем ирПривилегированный Экспорт;
//|Перем ирПортативный Экспорт;
//|
//|Перем ирПлатформа Экспорт;
//|");
ТипыМетаданных = ирПлатформа.ПолучитьТаблицуТиповМетаОбъектов(Истина, Ложь, Ложь);
ИндикаторТиповМетаданных = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ТипыМетаданных.Количество(), "Типы метаданных");
Для Каждого СтрокаТипаМетаданных Из ТипыМетаданных Цикл
ирОбщий.ОбработатьИндикаторЛкс(ИндикаторТиповМетаданных);
Если СтрокаТипаМетаданных.Единственное = "Перерасчет" Тогда
КоллекцияМетаОбъектов = Новый Массив;
Для Каждого МетаРегистрРасчета Из Метаданные.РегистрыРасчета Цикл
Для Каждого Перерасчет Из МетаРегистрРасчета.Перерасчеты Цикл
КоллекцияМетаОбъектов.Добавить(Перерасчет);
КонецЦикла;
КонецЦикла;
Иначе
КоллекцияМетаОбъектов = Метаданные[СтрокаТипаМетаданных.Множественное];
КонецЕсли;
Индикатор2 = ирОбщий.ПолучитьИндикаторПроцессаЛкс(КоллекцияМетаОбъектов.Количество(), СтрокаТипаМетаданных.Множественное);
Для Каждого МетаОбъект Из КоллекцияМетаОбъектов Цикл
Если Не Метаданные.Подсистемы.ИнструментыРазработчикаTormozit.Состав.Содержит(МетаОбъект) Тогда
Продолжить;
КонецЕсли;
ирОбщий.ОбработатьИндикаторЛкс(Индикатор2);
Попытка
МетаФормы = МетаОбъект.Формы;
Исключение
Продолжить;
КонецПопытки;
МенеджерОбъектаМетаданных = ирОбщий.ПолучитьМенеджерЛкс(МетаОбъект);
Индикатор3 = ирОбщий.ПолучитьИндикаторПроцессаЛкс(МетаФормы.Количество(), "Формы");
Для Каждого МетаФорма Из МетаФормы Цикл
ирОбщий.ОбработатьИндикаторЛкс(Индикатор3);
ПолноеИмяФормы = МетаФорма.ПолноеИмя();
//Сообщить(ПолноеИмяФормы);
//ПолноеИмяФормы = МетаОбъект.ПолноеИмя() + ".Форма." + МетаФорма.Имя;
Попытка
//Форма = ПолучитьФорму(ПолноеИмяФормы); // Так исключение не сработает и будет отображен диалог об ошибке. Особенность платформы
Форма = МенеджерОбъектаМетаданных.ПолучитьФорму(МетаФорма.Имя,,Новый УникальныйИдентификатор());
Исключение
Сообщить("Ошибка при получении формы " + ПолноеИмяФормы + ": " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
Продолжить;
КонецПопытки;
Если ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
Продолжить;
КонецЕсли;
ТелоМетода = Новый ЗаписьXML;
ТелоМетода.УстановитьСтроку("");
ПроверитьСвойстваОбъектаДляПортативногоРежимаЛкс("ЭтаФорма", Форма, ТелоМетода);
ТелоМетода = ТелоМетода.Закрыть();
ТекстМодуля.ЗаписатьБезОбработки("
|Процедура ИнициализироватьФорму_" + ирПлатформа.ПолучитьИдентификаторИзПредставления(ПолноеИмяФормы) + "(ЭтаФорма) Экспорт
|
|" + ТелоМетода + "
|КонецПроцедуры
|");
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
Результат =
"//#Область ОбработчикиИнициализацииФорм
|" + ТекстМодуля.Закрыть() + "
|//#КонецОбласти";
Возврат Результат;
КонецФункции
Процедура ПроверитьСвойстваОбъектаДляПортативногоРежимаЛкс(ПутьКОбъекту, Объект, ТелоМетода)
СтруктураТипа = ирПлатформа.ПолучитьСтруктуруТипаИзЗначения(Объект);
ВнутренняяТаблицаСлов = ирПлатформа.ПолучитьТаблицуСловСтруктурыТипа(СтруктураТипа);
Для Каждого ВнутренняяСтрокаСлова Из ВнутренняяТаблицаСлов Цикл
Если ВнутренняяСтрокаСлова.ТипСлова = "Свойство" Тогда
ИмяСвойства = ВнутренняяСтрокаСлова.Слово;
Если Ложь
Или ИмяСвойства = "ИсточникДействий"
Или ИмяСвойства = "КонтекстноеМеню"
Тогда
// Защита от длинных путей и зацикливания
Продолжить;
КонецЕсли;
Попытка
Структура = Новый Структура(ИмяСвойства);
Исключение
// "КартинкаКнопкиВыбора#&^@^%&*^#1"
Продолжить;
КонецПопытки;
Попытка
ЗаполнитьЗначенияСвойств(Структура, Объект);
Исключение
// Не всегда доступное свойство
Продолжить;
КонецПопытки;
ЗначениеСвойства = Структура[ИмяСвойства];
Если ТипЗнч(ЗначениеСвойства) = Тип("Картинка") Тогда
Если ЗначениеСвойства.Вид = ВидКартинки.ИзБиблиотеки Тогда
ИмяОбщейКартинки = СериализаторXDTO.записатьXDTO(ЗначениеСвойства).ref.ЛокальноеИмя;
Если Метаданные.ОбщиеКартинки.Найти(ИмяОбщейКартинки) <> Неопределено Тогда
ТелоМетода.ЗаписатьБезОбработки(Символы.Таб + ПутьКОбъекту + "." + ИмяСвойства + " = ирОбщий.ПолучитьОбщуюКартинкуЛкс("""
+ ИмяОбщейКартинки + """);" + Символы.ПС);
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("Цвет") Тогда
ИмяЦветаСтиля = СериализаторXDTO.записатьXDTO(ЗначениеСвойства).ЛексическоеЗначение;
ПозицияСкобки = Найти(ИмяЦветаСтиля, "}");
Если ПозицияСкобки > 0 Тогда
ИмяЦветаСтиля = Сред(ИмяЦветаСтиля, ПозицияСкобки + 1);
Если Метаданные.ЭлементыСтиля.Найти(ИмяЦветаСтиля) <> Неопределено Тогда
ТелоМетода.ЗаписатьБезОбработки(Символы.Таб + ПутьКОбъекту + "." + ИмяСвойства + " = ирОбщий.ПолучитьЦветСтиляЛкс("""
+ ИмяЦветаСтиля + """);" + Символы.ПС);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ирПлатформа.мМассивТиповЭлементовУправления.Найти(ТипЗнч(ЗначениеСвойства)) <> Неопределено Тогда
ПроверитьСвойстваОбъектаДляПортативногоРежимаЛкс(ПутьКОбъекту + "." + ИмяСвойства, ЗначениеСвойства, ТелоМетода);
КонецЕсли;
Если ирОбщий.ЭтоКоллекцияЛкс(ЗначениеСвойства) Тогда
ЕстьИндексПоИмени = Ложь;
Для Каждого ЭлементКоллекции Из ЗначениеСвойства Цикл
Если Не ЕстьИндексПоИмени Тогда
Попытка
Пустышка = Вычислить("ЗначениеСвойства." + ЭлементКоллекции.Имя);
Исключение
// Если к элементу по имени нельзя обратиться, то он нас не интересует.
Прервать;
КонецПопытки;
КонецЕсли;
ЕстьИндексПоИмени = Истина;
Если Ложь
Или ирПлатформа.мМассивТиповЭлементовУправления.Найти(ТипЗнч(ЭлементКоллекции)) <> Неопределено
Или ТипЗнч(ЭлементКоллекции) = Тип("КнопкаКоманднойПанели")
Тогда
ПроверитьСвойстваОбъектаДляПортативногоРежимаЛкс(ПутьКОбъекту + "." + ИмяСвойства + "." + ЭлементКоллекции.Имя, ЭлементКоллекции, ТелоМетода);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
Если ЗначениеЗаполнено(СтрокаСоединенияБазыПодсистемы) Тогда
СтрокаСоединенияБазыПодсистемыЛ = СтрокаСоединенияБазыПодсистемы;
Иначе
СтрокаСоединенияБазыПодсистемыЛ = СтрокаСоединенияИнформационнойБазы();
КонецЕсли;
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
ТекстЛога = "";
// Выгружаем конфигурацию в файлы
Если Не ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияБазыПодсистемыЛ, ТекстЛога,,
"Выгрузка конфигурации в файлы")
Тогда
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
КаталогВерсии = Каталог + "\" + Метаданные.Версия;
КаталогМодули = Новый Файл(КаталогВерсии + "\Модули");
Если Не КаталогМодули.Существует() Тогда
СоздатьКаталог(КаталогМодули.ПолноеИмя);
КонецЕсли;
УдалитьФайлы(КаталогВыгрузкиКонфигурации + "\CommonModules\ирПортативный.xml");
УдалитьФайлы(КаталогВыгрузкиКонфигурации + "\CommonModules\ирИнтерфейс.xml");
УдалитьФайлы(КаталогВыгрузкиКонфигурации + "\CommonModules\ирИнтерфейсОбъявление.xml");
СтрокаВерсии = Метаданные.Версия + "p";
// ирПортативный.ОбщиеКартинки
ТабличныйДокументКартинки = ТабличныйДокументИзОбщихКартинокПодсистемы();
ИмяфайлаТабличногоДокумента = КаталогВыгрузкиКонфигурации + "\DataProcessors\ирПортативный\Templates\ОбщиеКартинки\Ext\Template.xml";
ирОбщий.СохранитьЗначениеВФайлЛкс(ТабличныйДокументКартинки, ИмяфайлаТабличногоДокумента);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяфайлаТабличногоДокумента);
ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст();
// Антибаг платформы 8.3.9 Без этого текст теряется при загрузке внешней обработки из файлов
ТекстМодуля = СтрЗаменить(ТекстМодуля, "<v8:lang>#</v8:lang>", "<v8:lang></v8:lang>");
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
ТекстовыйДокумент.Записать(ИмяфайлаТабличногоДокумента);
// ирПортативный.Модуль
ИмяфайлаМодуля = КаталогВыгрузкиКонфигурации + "\DataProcessors\ирПортативный\Ext\ObjectModule.bsl";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяфайлаМодуля);
ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстМодуля, "#Область ОбработчикиИнициализацииФорм", "#КонецОбласти", Ложь, Истина);
НаЧтоЗаменить = СгенерироватьМодульИнициализацииФормПодсистемыДляПортативногоРежима();
ТекстМодуля = СтрЗаменить(ТекстМодуля, ЧтоЗаменить, НаЧтоЗаменить);
ИмяфайлаГлобальногоМодуля = КаталогВыгрузкиКонфигурации + "\CommonModules\ирГлобальный\Ext\Module.bsl";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяфайлаГлобальногоМодуля);
ТекстГлобальногоМодуля = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстМодуля, "#Область ГлобальныеПортативныеМетоды", "#КонецОбласти", Ложь, Истина);
НаЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстГлобальногоМодуля, "#Область ГлобальныеПортативныеМетоды", "#КонецОбласти", Ложь, Истина);
ТекстМодуля = СтрЗаменить(ТекстМодуля, ЧтоЗаменить, НаЧтоЗаменить);
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстМодуля, "мВерсия = ", ";", Ложь, Истина);
НаЧтоЗаменить = "мВерсия = """ + СтрокаВерсии + """;";
ТекстМодуля = СтрЗаменить(ТекстМодуля, ЧтоЗаменить, НаЧтоЗаменить);
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
ТекстовыйДокумент.Записать(ИмяфайлаМодуля);
УдалитьФайлы(ИмяфайлаГлобальногоМодуля);
// ирПортативныйСервер
ИмяфайлаМодуля = КаталогВыгрузкиКонфигурации + "\DataProcessors\ирПортативныйСервер\Ext\ObjectModule.bsl";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяфайлаМодуля);
ТекстМодуля = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстМодуля, "(""Версия"",", ");", Ложь, Истина);
НаЧтоЗаменить = "(""Версия"", """ + СтрокаВерсии + """);";
ТекстМодуля = СтрЗаменить(ТекстМодуля, ЧтоЗаменить, НаЧтоЗаменить);
ТекстовыйДокумент.УстановитьТекст(ТекстМодуля);
ТекстовыйДокумент.Записать(ИмяфайлаМодуля);
ПреобразоватьОбъектыМетаданныхПоТипу(КаталогВерсии, "CommonModule", "CommonModules", "epf", КаталогВыгрузкиКонфигурации, СтрокаСоединенияБазыПодсистемыЛ, "DataProcessor");
ПреобразоватьОбъектыМетаданныхПоТипу(КаталогВерсии, "Report", "Reports", "erf", КаталогВыгрузкиКонфигурации, СтрокаСоединенияБазыПодсистемыЛ);
ПреобразоватьОбъектыМетаданныхПоТипу(КаталогВерсии, "DataProcessor", "DataProcessors", "epf", КаталогВыгрузкиКонфигурации, СтрокаСоединенияБазыПодсистемыЛ);
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
КонецПроцедуры
Процедура ПреобразоватьОбъектыМетаданныхПоТипу(КаталогВерсии, Знач ИмяТипаЕдинственное, Знач ИмяТипаМножественное, Знач РасширениеФайла, Знач КаталогВыгрузкиКонфигурации,
Знач СтрокаСоединенияБазыПодсистемыЛ, Знач ПреобразоватьВТип = "")
ФайлыДляОбработки = НайтиФайлы(КаталогВыгрузкиКонфигурации + "\" + ИмяТипаМножественное, "*.xml");
Если Не ЗначениеЗаполнено(ПреобразоватьВТип) Тогда
ПреобразоватьВТип = ИмяТипаЕдинственное;
КонецЕсли;
Успех = Истина;
ТекстЛога = "";
Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ФайлыДляОбработки.Количество(), ИмяТипаМножественное);
Для Каждого Файл Из ФайлыДляОбработки Цикл
#Если _ Тогда
Файл = Новый Файл;
#КонецЕсли
ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
КаталогВыгрузкиВнешнейОбработки = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиВнешнейОбработки);
ИмяОсновногоФайлаВнешнейОбработки = КаталогВыгрузкиВнешнейОбработки + "\" + Файл.Имя;
ПодкаталогФайловВнешнейОбработки = КаталогВыгрузкиВнешнейОбработки + "\" + Файл.ИмяБезРасширения;
СоздатьКаталог(ПодкаталогФайловВнешнейОбработки);
ирОбщий.СкопироватьФайлыЛкс(Файл.Путь + "\" + Файл.ИмяБезРасширения, ПодкаталогФайловВнешнейОбработки);
ФайлОбщегоМОдуля = Новый Файл(ПодкаталогФайловВнешнейОбработки + "\Ext\Module.bsl");
Если ФайлОбщегоМОдуля.Существует() Тогда
ПереместитьФайл(ФайлОбщегоМОдуля.ПолноеИмя, ПодкаталогФайловВнешнейОбработки + "\Ext\ObjectModule.bsl");
КонецЕсли;
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
НовыйТекст = СтрЗаменить(ТекстовыйДокумент.ПолучитьТекст(), ИмяТипаЕдинственное, "External" + ПреобразоватьВТип);
ЧтениеХмл = Новый ЧтениеXML;
ПараметрыЧтения = Новый ПараметрыЧтенияXML(,,,,,,,, Ложь);
ЧтениеХмл.УстановитьСтроку(НовыйТекст, ПараметрыЧтения);
ПостроительDOM = Новый ПостроительDOM;
ДокументДом = ПостроительDOM.Прочитать(ЧтениеХмл);
ЧтениеХмл.Закрыть();
КорневойУзел = ДокументДом.ПолучитьЭлементыПоИмени("External" + ПреобразоватьВТип);
КорневойУзел = КорневойУзел[0];
// Удаляем управляемые формы
УзлыДопФормы = КорневойУзел.ПолучитьЭлементыПоИмени("AuxiliaryForm");
Для Каждого УзелДопФормы Из УзлыДопФормы Цикл
Если Найти(УзелДопФормы.ТекстовоеСодержимое + "#", "Упр#") > 0 Тогда
УзелДопФормы.РодительскийУзел.УдалитьДочерний(УзелДопФормы);
КонецЕсли;
КонецЦикла;
УзлыФорм = КорневойУзел.ПолучитьЭлементыПоИмени("Form");
Для Каждого УзелФормы Из УзлыФорм Цикл
Если Найти(УзелФормы.ТекстовоеСодержимое + "#", "Упр#") > 0 Тогда
УзелФормы.РодительскийУзел.УдалитьДочерний(УзелФормы);
КонецЕсли;
КонецЦикла;
УзелИдентификации = КорневойУзел.ПолучитьЭлементыПоИмени("InternalInfo");
Если УзелИдентификации.Количество() = 0 Тогда
УзелИдентификации = ДокументДом.СоздатьЭлемент("InternalInfo");
КорневойУзел.ВставитьПеред(УзелИдентификации, КорневойУзел.ПервыйДочерний);
КонецЕсли;
УзелИдентификации = КорневойУзел.ПолучитьЭлементыПоИмени("ChildObjects");
Если УзелИдентификации.Количество() = 0 Тогда
УзелИдентификации = ДокументДом.СоздатьЭлемент("ChildObjects");
КорневойУзел.ДобавитьДочерний(УзелИдентификации);
КонецЕсли;
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяОсновногоФайлаВнешнейОбработки);
ЗаписьДом = Новый ЗаписьDOM;
ЗаписьДом.Записать(ДокументДом, ЗаписьXML);
ЗаписьXML.Закрыть();
Если ирОбщий.СтрокиРавныЛкс(Файл.ИмяБезРасширения, "ирПортативный") Тогда
КонечныйФайл = КаталогВерсии + "\";
Иначе
КонечныйФайл = КаталогВерсии + "\Модули\";
КонецЕсли;
КонечныйФайл = КонечныйФайл + Файл.ИмяБезРасширения + "." + РасширениеФайла;
Если Не ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadExternalDataProcessorOrReportFromFiles """ + ИмяОсновногоФайлаВнешнейОбработки + """ """ + КонечныйФайл + """",
СтрокаСоединенияБазыПодсистемыЛ, ТекстЛога)
Тогда
УдалитьФайлы(КаталогВыгрузкиВнешнейОбработки);
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(ТекстЛога);
Успех = Ложь;
Прервать;
КонецЕсли;
УдалитьФайлы(КаталогВыгрузкиВнешнейОбработки);
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
КонецПроцедуры
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ВыбратьКаталогВФормеЛкс(Каталог);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаПортативный.Каталог", Каталог);
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаПортативный.СтрокаСоединенияБазыПодсистемы", СтрокаСоединенияБазыПодсистемы);
КонецПроцедуры
Процедура ПриОткрытии()
Подверсия = "1";
Каталог = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаПортативный.Каталог");
СтрокаСоединенияБазыПодсистемы = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаПортативный.СтрокаСоединенияБазыПодсистемы");
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ВерсияПлатформы = ирПлатформа.ВерсияПлатформы;
Если ВерсияПлатформы < 803008 Тогда
Сообщить("Поддерживается только платформа 8.3.8 и выше");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
ирПлатформа = ирКэш.Получить();

View File

@ -0,0 +1,690 @@
{27,
{18,
{
{1,1,
{"ru","Выпуск варианта Портативный (ИР)"}
},10,2},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},25,0,2,
{0,2,0},
{0,2,1},1,
{0,2,2},3,
{0,2,3},
{0,3,3},
{0,5,3},0,0,
{7,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,467,1,1,3,0,0,8,0},
{2,83,0,1,4,0,0,26,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{6,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},9,1,0,2,0,1,
{5,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1,1,
{6,bf86db57-46df-49b2-b993-75e07d33684b,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ОсновныеДействияФормыВыполнить",
{1,"ОсновныеДействияФормыВыполнить",
{1,1,
{"ru","Выполнить"}
},
{1,1,
{"ru","Выполнить"}
},
{1,1,
{"ru","Выполнить"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,bf86db57-46df-49b2-b993-75e07d33684b,
{8,"Выполнить",0,1,
{1,1,
{"ru","Выполнить"}
},0,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1e2,0,0,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0ea100ac-978d-4388-9755-cc6329de5c2f,1,0,0}
},
{8,0,84,475,109,1,
{0,
{2,0,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,0,6,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
{381ed624-9217-4e63-85db-c4c3cb87daae,3,
{9,
{"Pattern",
{"S"}
},
{
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,1,
{"ru","Куда выгружать готовые файлы портативного варианта"}
},0,0,100,1},30,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
{1,0},1,0,0,0,0,0,0,16777215,1}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
{4,
{"U"},
{"U"},0,"",0,0}
}
},
{1,
{2,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КаталогНачалоВыбора",
{1,"КаталогНачалоВыбора",
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},0,1,0,
{1,0},0},
{8,109,56,467,75,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,3,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,3,1},0,0,0,0,0,0,1,5,0,0},
{14,"Каталог",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4,
{3,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,1,
{"ru","Куда помещать выпускаемые файлы"}
},0,0,100,0},11,
{1,1,
{"ru","Каталог выпуска:"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0},
{0}
},
{8,8,56,103,75,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,2,95},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,4,1},0,1,
{0,4,3},0,0,0,0,2,4,0,0},
{14,"Надпись1",4294967295,0,0,0},
{0}
},
{381ed624-9217-4e63-85db-c4c3cb87daae,5,
{9,
{"Pattern",
{"S"}
},
{
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,1,
{"ru","Строка соединения базы подсистемы ""Инструменты разработчика"". Если пустая, используется текущая база."}
},0,0,100,1},30,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
{1,0},0,0,0,0,0,0,0,16777215,1}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
{4,
{"U"},
{"U"},0,"",0,0}
}
},
{1,
{2,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КаталогНачалоВыбора",
{1,"КаталогНачалоВыбора",
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},0,1,0,
{1,0},0},
{8,109,32,467,51,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,5,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,5,1},0,0,0,0,0,0,3,3,0,0},
{14,"СтрокаСоединенияБазыПодсистемы",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,6,
{3,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},11,
{1,1,
{"ru","База подсистемы:"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0},
{0}
},
{8,8,32,103,51,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,6,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,6,2,95},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,6,1},0,1,
{0,6,3},0,0,0,0,4,2,0,0},
{14,"Надпись2",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,10,
{3,
{
{15,1,
{3,4,
{0}
},
{3,3,
{-14}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},11,
{1,1,
{"ru","Рекомендуется выполнять в базе с конфигурацией, содержащей чистую подсистему ИР"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0},
{0}
},
{8,8,8,467,27,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,10,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,10,2,459},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,10,1},0,1,
{0,10,3},0,0,0,0,5,1,0,0},
{14,"Надпись4",4294967295,0,0,0},
{0}
}
}
},475,109,1,0,1,4,4,177,475,109,96},
{
{-1},5,
{3,
{
{1},1,0,1,"Каталог",
{"Pattern",
{"S"}
}
},
{
{2},1,0,1,"СтрокаСоединенияБазыПодсистемы",
{"Pattern",
{"S"}
}
},
{
{3},0,0,1,"Подверсия",
{"Pattern",
{"S",2,1}
}
}
},
{2,
{3,
{1,
{1}
}
},
{5,
{1,
{2}
}
}
}
},
{00000000-0000-0000-0000-000000000000,0},
{3,
{70000,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПередОткрытием",
{1,"ПередОткрытием",
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
},
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
},
{70003,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриЗакрытии",
{1,"ПриЗакрытии",
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonForm uuid="1423c9b4-a549-4267-b8c9-c449c8c88cda">
<Properties>
<Name>ирВыпускВариантаРасширение</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выпуск варианта Расширение (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<UseStandardCommands>false</UseStandardCommands>
<ExtendedPresentation/>
<Explanation/>
</Properties>
</CommonForm>
</MetaDataObject>

View File

@ -0,0 +1,245 @@
Перем ирПлатформа;
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
ТекстЛога = "";
// Выгружаем конфигурацию в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
"Выгрузка конфигурации в файлы");
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
СоздатьРасширение("e", КаталогВыгрузкиКонфигурации);
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
//Предупреждение("Не забудь вручную убрать флажок ""Проверять значения языка"" у расширения!");
КонецПроцедуры
Процедура СоздатьРасширение(Знач СуффиксВерсии, Знач КаталогВыгрузкиКонфигурации)
ВерсияРасширения = Метаданные.Версия + СуффиксВерсии;
ИмяРасширения = "Расширение1";
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("cfe");
ПолучитьОбщийМакет("ирШаблонРасширения").Записать(ИмяВременногоФайла);
ТекстЛога = "";
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadCfg """ + ИмяВременногоФайла + """ -Extension """ + ИмяРасширения + """", , ТекстЛога,,, Истина);
Если Не Успех Тогда
УдалитьФайлы(ИмяВременногоФайла);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
УдалитьФайлы(ИмяВременногоФайла);
ТекстЛога = "";
КаталогВыгрузкиРасширения = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиРасширения);
// Выгрузка расширения в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Выгрузка расширения в файлы");
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиРасширения);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
// Скопируем все папки кроме Catalogs и Ext и файла ConfigDumpInfo.xml
Файлы = НайтиФайлы(КаталогВыгрузкиКонфигурации, "*");
Для Каждого Файл Из Файлы Цикл
Если Ложь
Или Файл.Имя = "Catalogs"
Или Файл.Имя = "Ext"
Или Не Файл.ЭтоКаталог()
Тогда
Продолжить;
КонецЕсли;
ФайлПриемник = Новый Файл(КаталогВыгрузкиРасширения + "\" + Файл.Имя);
Если Не ФайлПриемник.Существует() Тогда
СоздатьКаталог(ФайлПриемник.ПолноеИмя);
КонецЕсли;
ирОбщий.СкопироватьФайлыЛкс(КаталогВыгрузкиКонфигурации + "\" + Файл.Имя, КаталогВыгрузкиРасширения + "\" + Файл.Имя);
КонецЦикла;
// Во всех CommonCommands удалить <CommandParameterType>...</CommandParameterType>
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\CommonCommands", "*.xml");
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<CommandParameterType>", "</CommandParameterType>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// Из SubSystems вырезаем фрагменты <xr:Item xsi:type="xr:MDObjectRef">Catalog.ирОбъектыДляОтладки</xr:Item>
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\SubSystems", "*.xml");
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирАлгоритмы</xr:Item>", "");
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирКомандаРедактироватьОбъект</xr:Item>", "");
ТекстФайла = СтрЗаменить(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.ирОбъектыДляОтладки</xr:Item>", "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// У общего модуля ирГлобальный убираем флажок Сервер
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирГлобальный.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Server>true</Server>", "<Server>false</Server>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
//// Скопируем глобальные методы в общий модуль ирОтладка
//ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирГлобальный\Ext\Module.bsl";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ИмяФайла);
//ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
//ТекстМетодов = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "#Область ГлобальныеПортативныеМетоды", "#КонецОбласти", Ложь, Истина);
//ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирОтладка\Ext\Module.bsl";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ИмяФайла);
//ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
//ТекстФайла = ТекстФайла + ТекстМетодов;
//ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
//ТекстовыйДокумент.Записать(ИмяФайла);
// У общего модуля ирПривилегированный убираем флажок Привилегированный
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирПривилегированный.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Privileged>true</Privileged>", "<Privileged>false</Privileged>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
// У подсистемы ИнструментыРазработчикаTormozit обновим версию
ИмяФайла = КаталогВыгрузкиРасширения + "\SubSystems\ИнструментыРазработчикаTormozit.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<Comment>", "</Comment>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "<Comment>" + ВерсияРасширения + "</Comment>");
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайла, "<v8:content>Инструменты разработчика ", "</v8:content>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "<v8:content>Инструменты разработчика " + ВерсияРасширения + "</v8:content>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
ИмяФайла = КаталогВыгрузкиРасширения + "\CommonModules\ирИнтерфейсДляВстраивания\Ext\Module.bsl";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "// Версия модуля X.XX", "// Версия модуля " + Метаданные.Версия);
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
ИмяФайла = КаталогВыгрузкиРасширения + "\Languages\Русский.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ТекстФайла = СтрЗаменить(ТекстФайла, "<Name>Русский</Name>", "<Name>Русский</Name><ObjectBelonging>Adopted</ObjectBelonging>");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
// Заменим элемент <ChildObjects> в файле Configuration.xml
ФайлКонфигурацииИсточника = КаталогВыгрузкиКонфигурации + "\Configuration.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
ФайлКонфигурацииПриемника = КаталогВыгрузкиРасширения + "\Configuration.xml";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКонфигурацииПриемника);
ТекстФайлаПриемника = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаПриемника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
НаЧтоЗаменить = ирОбщий.ПолучитьСтрокуМеждуМаркерамиЛкс(ТекстФайлаИсточника, "<ChildObjects>", "</ChildObjects>", Ложь, Истина);
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, ЧтоЗаменить, НаЧтоЗаменить);
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Version>4.00</Version>", "<Version>" + ВерсияРасширения + "</Version>");
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Interface>ирРазработчик</Interface>", "");
ТекстФайлаПриемника = СтрЗаменить(ТекстФайлаПриемника, "<Style>ирОсновной</Style>", "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайлаПриемника);
ТекстовыйДокумент.Записать(ФайлКонфигурацииПриемника);
//Предупреждение(1);
// Загрузка расширения из файлов
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Загрузка расширения из файлов");
УдалитьФайлы(КаталогВыгрузкиРасширения); // Закомментировано для отладки
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
//// Выгружаем расширение в файлы
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
//ФайлКонфигурацииИсточника = КаталогВыгрузкиРасширения + "\Configuration.xml";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
//ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
//Предупреждение(1);
//ТекстФайлаИсточника = СтрЗаменить(ТекстФайлаИсточника, "<DefaultLanguage>Language.ирРусский</DefaultLanguage>", ""); // На первом проходе в 8.3.10 невозможно сделать
//ТекстовыйДокумент.УстановитьТекст(ТекстФайлаИсточника);
//ТекстовыйДокумент.Записать(ФайлКонфигурацииИсточника);
//
//// Загружаем расширение из файлов
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
// Выгружаем расширение
КонечныйФайл = Каталог + "\ИР " + ВерсияРасширения + ".cfe";
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpCfg """ + КонечныйФайл + """ -Extension """ + ИмяРасширения + """", , ТекстЛога);
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
КонецПроцедуры
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ВыбратьКаталогВФормеЛкс(Каталог);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог", Каталог);
КонецПроцедуры
Процедура ПриОткрытии()
Каталог = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог");
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ВерсияПлатформы = ирПлатформа.ВерсияПлатформы;
Если ВерсияПлатформы < 803010 Тогда
Сообщить("Поддерживается только платформа 8.3.10 и выше");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
ирПлатформа = ирКэш.Получить();

View File

@ -0,0 +1,498 @@
{27,
{18,
{
{1,1,
{"ru","Выпуск варианта Расширение (ИР)"}
},14,2},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},25,0,2,
{0,2,0},
{0,2,1},1,
{0,2,2},2,
{0,2,3},
{0,3,3},0,0,
{7,1,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},0,1,
{1,1,
{4,
{1,1,
{"ru","Страница1"}
},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,2,0},-1,1,1,"Страница1",1,
{3,4,
{0}
},
{3,4,
{0}
}
}
},1,1,0,4,
{2,8,1,1,1,0,0,0,0},
{2,8,0,1,2,0,0,0,0},
{2,467,1,1,3,0,0,8,0},
{2,56,0,1,4,0,0,26,0},0,4294967295,5,64,0,
{3,4,
{0}
},0,0,57,0},
{0}
},
{4,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-21}
},
{3,0,
{0},7,1,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},9,1,0,2,0,1,
{5,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1,1,
{6,19135566-999d-47d3-b558-8dd009d13524,1,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ОсновныеДействияФормыВыполнить",
{1,"ОсновныеДействияФормыВыполнить",
{1,1,
{"ru","Выполнить"}
},
{1,1,
{"ru","Выполнить"}
},
{1,1,
{"ru","Выполнить"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
},0},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,19135566-999d-47d3-b558-8dd009d13524,
{8,"Выполнить",0,1,
{1,1,
{"ru","Выполнить"}
},0,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1e2,0,0,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,c5b060b7-3325-4378-a563-1cc696c4f621,1,0,0}
},
{8,0,57,475,82,1,
{0,
{2,0,1,-25},
{2,-1,6,0}
},
{0,
{2,0,1,0},
{2,-1,6,0}
},
{0,
{2,0,2,0},
{2,-1,6,0}
},
{0,
{2,0,3,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},0,0,0,0,0,0,0,0,4,1,1},
{14,"ОсновныеДействияФормы",0,0,0,0},
{0}
},
{381ed624-9217-4e63-85db-c4c3cb87daae,3,
{9,
{"Pattern",
{"S"}
},
{
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,1,
{-18},0,0,0},
{1,1,
{"ru","Куда выгружать готовые файлы портативного варианта"}
},0,0,100,1},30,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,4,0,
{"U"},
{"U"},"",0,1,0,0,0,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},0,0,0,
{0,0,0},
{1,0},1,0,0,0,0,0,0,16777215,1}
},
{1,
{9a7643d2-19e9-45e2-8893-280bc9195a97,
{4,
{"U"},
{"U"},0,"",0,0}
}
},
{1,
{2,e1692cc2-605b-4535-84dd-28440238746c,
{3,"КаталогНачалоВыбора",
{1,"КаталогНачалоВыбора",
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{1,1,
{"ru","Каталог начало выбора"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},0,1,0,
{1,0},0},
{8,124,32,467,51,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,3,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,0,3,-8},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,3,1},0,0,0,0,0,0,1,3,0,0},
{14,"Каталог",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,4,
{3,
{
{15,1,
{3,4,
{0}
},
{3,4,
{0}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,1,
{"ru","Куда помещать выпускаемые файлы"}
},0,0,100,0},11,
{1,1,
{"ru","Каталог выпуска:"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0},
{0}
},
{8,8,32,120,51,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,4,2,112},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,4,1},0,1,
{0,4,3},0,0,0,0,2,2,0,0},
{14,"Надпись1",4294967295,0,0,0},
{0}
},
{0fc7e20d-f241-460c-bdf4-5ad88e5474a5,14,
{3,
{
{15,1,
{3,4,
{0}
},
{3,3,
{-14}
},
{7,3,0,1,100},0,
{3,4,
{0}
},
{3,4,
{0}
},
{3,4,
{0}
},
{3,3,
{-7}
},
{3,3,
{-21}
},
{3,0,
{0},0,0,0,48312c09-257f-4b29-b280-284dd89efc1e},
{1,0},0,0,100,0},11,
{1,1,
{"ru","Рекомендуется выполнять в базе с конфигурацией, содержащей чистую подсистему ИР"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},1,
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},4,0,0,0,0,0,0,0},
{0}
},
{8,8,8,467,27,1,
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,14,0,19},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,14,2,459},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},
{0,
{2,-1,6,0},
{2,-1,6,0}
},1,
{0,14,1},0,1,
{0,14,3},0,0,0,0,3,1,0,0},
{14,"Надпись4",4294967295,0,0,0},
{0}
}
}
},475,82,1,0,1,4,4,322,475,82,96},
{
{-1},7,
{1,
{
{1},1,0,1,"Каталог",
{"Pattern",
{"S"}
}
}
},
{1,
{3,
{1,
{1}
}
}
}
},
{00000000-0000-0000-0000-000000000000,0},
{3,
{70000,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПередОткрытием",
{1,"ПередОткрытием",
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{1,1,
{"ru","Перед открытием"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
},
{70001,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриОткрытии",
{1,"ПриОткрытии",
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{1,1,
{"ru","При открытии"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
},
{70003,e1692cc2-605b-4535-84dd-28440238746c,
{3,"ПриЗакрытии",
{1,"ПриЗакрытии",
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{1,1,
{"ru","При закрытии"}
},
{4,0,
{0},"",-1,-1,1,0,""},
{0,0,0}
}
}
}
},1,4,1,0,0,0,
{0},
{0},
{7,0,
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},
{4,0,
{0},"",-1,-1,1,0,""},100,0,0},1,2,0,0,1,1}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonForm uuid="07563480-0a24-436e-8a28-b3fee934613d">
<Properties>
<Name>ирОбновлениеОписанияПлатформы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновление описания платформы (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Ordinary</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<UseStandardCommands>false</UseStandardCommands>
<ExtendedPresentation/>
<Explanation/>
</Properties>
</CommonForm>
</MetaDataObject>

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Отладка внешних обработок БСП (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Отладка внешних обработок БСП (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Отладка внешних обработок БСП (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
@ -24,7 +16,7 @@
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<UseStandardCommands>false</UseStandardCommands>
<UseStandardCommands>true</UseStandardCommands>
<ExtendedPresentation/>
<Explanation/>
</Properties>

View File

@ -0,0 +1,433 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<VerticalScroll>useIfNecessary</VerticalScroll>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаОбновитьОбщиеНастройки" id="43">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ПрочитатьАктуальныеНастройки</CommandName>
<ExtendedTooltip name="ФормаОбновитьОбщиеНастройкиРасширеннаяПодсказка" id="55"/>
</Button>
<Button name="ФормаОбщаяКомандаирОткрытьОтладчик" id="49">
<Type>CommandBarButton</Type>
<Representation>PictureAndText</Representation>
<CommandName>CommonCommand.ирОткрытьОтладчик</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОткрытьОтладчикРасширеннаяПодсказка" id="56"/>
</Button>
<Button name="ФормаОбщаяКомандаирОПодсистеме" id="54">
<Type>CommandBarButton</Type>
<CommandName>CommonCommand.ирОПодсистеме</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="57"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<CheckBoxField name="ПерехватВнешнихОбработок" id="40">
<DataPath>ПерехватВнешнихОбработок</DataPath>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Перехват создания внешних обработок для всех пользователей. Выключайте в случае проблем.</v8:content>
</v8:item>
</ToolTip>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ПерехватВнешнихОбработокКонтекстноеМеню" id="41"/>
<ExtendedTooltip name="ПерехватВнешнихОбработокРасширеннаяПодсказка" id="58"/>
<Events>
<Event name="OnChange">ПерехватВнешнихОбработокПриИзменении</Event>
</Events>
</CheckBoxField>
<InputField name="КаталогФайловогоКэша" id="4">
<DataPath>КаталогФайловогоКэша</DataPath>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Рекомендуется выбирать сетевой каталог, чтобы он был доступен любому серверному и нужным клиентским процессам.</v8:content>
</v8:item>
</ToolTip>
<ChoiceButton>true</ChoiceButton>
<OpenButton>true</OpenButton>
<ContextMenu name="КаталогФайловогоКэшаКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="КаталогФайловогоКэшаРасширеннаяПодсказка" id="59"/>
<Events>
<Event name="OnChange">КаталогФайловогоКэшаПриИзменении</Event>
<Event name="StartChoice">КаталогФайловогоКэшаНачалоВыбора</Event>
<Event name="Opening">КаталогФайловогоКэшаОткрытие</Event>
</Events>
</InputField>
<CheckBoxField name="ОтладкаДляТекущегоПользователя" id="1">
<DataPath>СозданиеВнешнихОбработокЧерезФайл</DataPath>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Под текущим пользователем внешние обработки будут создаваться через постоянные файлы и будет доступна их отладка.</v8:content>
</v8:item>
</ToolTip>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ОтладкаДляТекущегоПользователяКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ОтладкаДляТекущегоПользователяРасширеннаяПодсказка" id="60"/>
<Events>
<Event name="OnChange">ОтладкаДляТекущегоПользователяПриИзменении</Event>
</Events>
</CheckBoxField>
<LabelDecoration name="НадписьНеРаботаютТочкиОстанова" id="51">
<TextColor>style:SpecialTextColor</TextColor>
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>В 8.3.6 точки останова во внеших обработках не работают из-за ошибки платформы</v8:content>
</v8:item>
</Title>
<ContextMenu name="НадписьНеРаботаютТочкиОстановаКонтекстноеМеню" id="52"/>
<ExtendedTooltip name="НадписьНеРаботаютТочкиОстановаРасширеннаяПодсказка" id="61"/>
</LabelDecoration>
<Table name="Список" id="7">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<AutoInsertNewRow>true</AutoInsertNewRow>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<FileDragMode>AsFile</FileDragMode>
<DataPath>Список</DataPath>
<SearchStringLocation>None</SearchStringLocation>
<ViewStatusLocation>None</ViewStatusLocation>
<SearchControlLocation>None</SearchControlLocation>
<RowFilter xsi:nil="true"/>
<ContextMenu name="СписокКонтекстноеМеню" id="8"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="9">
<Autofill>false</Autofill>
<ChildItems>
<Button name="ВнешниеОбработкиСортироватьСписокПоВозрастанию" id="29">
<Type>CommandBarButton</Type>
<CommandName>Form.Item.Список.StandardCommand.SortListAsc</CommandName>
<LocationInCommandBar>InCommandBarAndInAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ВнешниеОбработкиСортироватьСписокПоВозрастаниюРасширеннаяПодсказка" id="62"/>
</Button>
<Button name="ВнешниеОбработкиСортироватьСписокПоУбыванию" id="31">
<Type>CommandBarButton</Type>
<CommandName>Form.Item.Список.StandardCommand.SortListDesc</CommandName>
<LocationInCommandBar>InCommandBarAndInAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ВнешниеОбработкиСортироватьСписокПоУбываниюРасширеннаяПодсказка" id="63"/>
</Button>
<Button name="ВнешниеОбработкиОбновить" id="35">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОбновитьСписок</CommandName>
<ExtendedTooltip name="ВнешниеОбработкиОбновитьРасширеннаяПодсказка" id="64"/>
</Button>
<Button name="ВнешниеОбработкиОткрытьВОтладчике" id="33">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОткрытьВОтладчике</CommandName>
<ExtendedTooltip name="ВнешниеОбработкиОткрытьВОтладчикеРасширеннаяПодсказка" id="65"/>
</Button>
<Button name="ВнешниеОбработкиЗагрузитьИзФайла" id="45">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ЗагрузитьИзФайла</CommandName>
<ExtendedTooltip name="ВнешниеОбработкиЗагрузитьИзФайлаРасширеннаяПодсказка" id="66"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="67"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="68">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="69"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="70"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="71">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="72"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="73"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="74">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="75"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="76"/>
</SearchControlAddition>
<Events>
<Event name="Selection">ВнешниеОбработкиВыбор</Event>
</Events>
<ChildItems>
<InputField name="ВнешниеОбработкиСсылка" id="20">
<DataPath>Список.Ссылка</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ВнешниеОбработкиСсылкаКонтекстноеМеню" id="21"/>
<ExtendedTooltip name="ВнешниеОбработкиСсылкаРасширеннаяПодсказка" id="77"/>
</InputField>
<InputField name="ВнешниеОбработкиИмяФайла" id="23">
<DataPath>Список.ИмяФайла</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ВнешниеОбработкиИмяФайлаКонтекстноеМеню" id="24"/>
<ExtendedTooltip name="ВнешниеОбработкиИмяФайлаРасширеннаяПодсказка" id="78"/>
</InputField>
<InputField name="ВнешниеОбработкиДатаИзмененияФайла" id="26">
<DataPath>Список.ДатаИзмененияФайла</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ВнешниеОбработкиДатаИзмененияФайлаКонтекстноеМеню" id="27"/>
<ExtendedTooltip name="ВнешниеОбработкиДатаИзмененияФайлаРасширеннаяПодсказка" id="79"/>
</InputField>
<CheckBoxField name="ВнешниеОбработкиФайлСоответствуетДанным" id="37">
<DataPath>Список.ФайлОтличаетсяОтХранилища</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ВнешниеОбработкиФайлСоответствуетДаннымКонтекстноеМеню" id="38"/>
<ExtendedTooltip name="ВнешниеОбработкиФайлСоответствуетДаннымРасширеннаяПодсказка" id="80"/>
</CheckBoxField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="СозданиеВнешнихОбработокЧерезФайл" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Создание внешних обработок через файл</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="КаталогФайловогоКэша" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Каталог файлового кэша</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="Список" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueTable</v8:Type>
</Type>
<Columns>
<Column name="Ссылка" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ссылка</v8:content>
</v8:item>
</Title>
<Type>
<v8:TypeSet>cfg:AnyRef</v8:TypeSet>
</Type>
</Column>
<Column name="ИмяФайла" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя файла</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Column>
<Column name="ДатаИзмененияФайла" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дата изменения файла</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>DateTime</v8:DateFractions>
</v8:DateQualifiers>
</Type>
</Column>
<Column name="ФайлОтличаетсяОтХранилища" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Файл отличается от хранилища</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
</Columns>
</Attribute>
<Attribute name="ПерехватВнешнихОбработок" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Перехват внешних обработок</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<ConditionalAppearance>
<dcsset:item>
<dcsset:selection>
<dcsset:item>
<dcsset:field>ВнешниеОбработкиСсылка</dcsset:field>
</dcsset:item>
<dcsset:item>
<dcsset:field>ВнешниеОбработкиИмяФайла</dcsset:field>
</dcsset:item>
<dcsset:item>
<dcsset:field>ВнешниеОбработкиДатаИзмененияФайла</dcsset:field>
</dcsset:item>
<dcsset:item>
<dcsset:field>ВнешниеОбработкиФайлСоответствуетДанным</dcsset:field>
</dcsset:item>
</dcsset:selection>
<dcsset:filter>
<dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">Список.ФайлОтличаетсяОтХранилища</dcsset:left>
<dcsset:comparisonType>Equal</dcsset:comparisonType>
<dcsset:right xsi:type="xs:boolean">true</dcsset:right>
</dcsset:item>
</dcsset:filter>
<dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:parameter>ЦветТекста</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">web:Sienna</dcscor:value>
</dcscor:item>
</dcsset:appearance>
</dcsset:item>
</ConditionalAppearance>
</Attributes>
<Commands>
<Command name="ОбновитьСписок" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновить список</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Обновить список</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.Refresh</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОбновитьСписок</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="ОткрытьВОтладчике" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть в отладчике</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть файл внешней обработки в уже открытом отладчике. Окна отладчика ищутся по подстроке "Конфигуратор" в заголовке.</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКонфигуратор1С8</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОткрытьВОтладчике</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="ПрочитатьАктуальныеНастройки" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Прочитать актуальные настройки</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Полезно в случае их изменения настроек в другом сеансе</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.Refresh</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ПрочитатьАктуальныеНастройки</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="ЗагрузитьИзФайла" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить из файла</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить файл в хранилище внешней обработки в базе. После этого он станет использоваться всеми пользователями.</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирЗагрузитьИзФайла</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ЗагрузитьИзФайла</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="ОткрытьКонфигуратор" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть конфигуратор</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть конфигуратор</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ирКонфигуратор1С8</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОткрытьКонфигуратор</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,246 @@

&НаКлиенте
Процедура КаталогФайловогоКэшаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
ВыборФайла.Каталог = КаталогФайловогоКэша;
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ЭтаФорма.КаталогФайловогоКэша = ВыборФайла.Каталог;
КаталогФайловогоКэшаПриИзменении();
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СообщениеПоддеркиВерсийБСП = "Поддерживаются версии БСП 2.0-2.3";
Если Метаданные.Справочники.Найти("ДополнительныеОтчетыИОбработки") = Неопределено Тогда
Сообщить("Справочник внешних обработок БСП не обнаружен. " + СообщениеПоддеркиВерсийБСП);
Отказ = Истина;
Возврат;
КонецЕсли;
Если Метаданные.Константы.Найти("ПараметрыСлужебныхСобытий") = Неопределено Тогда
Сообщить("Константа ПараметрыСлужебныхСобытий не обнаружена. " + СообщениеПоддеркиВерсийБСП);
Отказ = Истина;
Возврат;
КонецЕсли;
ВерсияПлатформы = ирКэш.Получить().ВерсияПлатформы;
Элементы.НадписьНеРаботаютТочкиОстанова.Видимость = ВерсияПлатформы = 803006;
ПрочитатьНастройкиНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПрочитатьНастройкиНаСервере()
Обработчик = ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс();
ЭтаФорма.ПерехватВнешнихОбработок = Обработчик <> Неопределено;
Если ПерехватВнешнихОбработок Тогда
ЭтаФорма.КаталогФайловогоКэша = Обработчик.КаталогФайловогоКэша;
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = ХранилищеСистемныхНастроек.Загрузить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл");
ОбновитьСписокНаСервере();
Иначе
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
КонецЕсли;
ОбновитьДоступность();
КонецПроцедуры
&НаКлиенте
Процедура ОтладкаДляТекущегоПользователяПриИзменении(Элемент)
Если СозданиеВнешнихОбработокЧерезФайл Тогда
Если ЭтаФорма.ПерехватВнешнихОбработок <> Истина Тогда
ЭтаФорма.ПерехватВнешнихОбработок = Истина;
Если Не СохранитьНастройкиНаСервере() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
СохранитьНастройкиПользователяНаСервере();
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройкиПользователяНаСервере()
ХранилищеСистемныхНастроек.Сохранить("ирОтладкаВнешнихОбработок", "СозданиеВнешнихОбработокЧерезФайл", СозданиеВнешнихОбработокЧерезФайл);
КонецПроцедуры
&НаКлиенте
Процедура КаталогФайловогоКэшаПриИзменении(Элемент = Неопределено)
СохранитьНастройкиНаСервере();
ОбновитьСписокНаСервере();
КонецПроцедуры
&НаСервере
Функция СохранитьНастройкиНаСервере()
Если ПерехватВнешнихОбработок Тогда
ФайлКаталога = Новый Файл(КаталогФайловогоКэша);
Если Не ФайлКаталога.Существует() Тогда
Сообщить("Выбранный каталог недоступен серверу. Выберите другой каталог");
ПрочитатьНастройкиНаСервере();
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
Возврат Ложь;
КонецЕсли;
ирСервер.ВключитьПерехватВнешнихОбработокБСПЛкс(КаталогФайловогоКэша);
Иначе
ирСервер.НайтиПерехватВнешнихОбработокБСПЛкс(Истина);
КонецЕсли;
//ПрочитатьНастройкиНаСервере();
Возврат Истина;
КонецФункции
&НаСервере
Процедура ОбновитьСписокНаСервере()
Список.Очистить();
ОбновитьДоступность();
Если Не ЗначениеЗаполнено(КаталогФайловогоКэша) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ДополнительныеОтчетыИОбработки.Ссылка КАК Ссылка,
| ДополнительныеОтчетыИОбработки.ИмяФайла
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|АВТОУПОРЯДОЧИВАНИЕ";
Результат = Запрос.Выполнить().Выгрузить();
СравнениеЗначений = Новый СравнениеЗначений;
Для Каждого СтрокаРезультата Из Результат Цикл
СтрокаТаблицы = Список.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, СтрокаРезультата);
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(СтрокаТаблицы.Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
СтрокаТаблицы.ИмяФайла = Файл.Имя;
Если Файл.Существует() Тогда
Попытка
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ПолноеИмяФайла);
Исключение
Сообщить("Ошибка доступа к файлу """ + ПолноеИмяФайла + """: " + ОписаниеОшибки());
Продолжить;
КонецПопытки;
СтрокаТаблицы.ДатаИзмененияФайла = Файл.ПолучитьВремяИзменения() + ирКэш.ПолучитьСмещениеВремениЛкс();
СтрокаТаблицы.ФайлОтличаетсяОтХранилища = СравнениеЗначений.Сравнить(ДвоичныеДанныеФайла, СтрокаТаблицы.Ссылка.ХранилищеОбработки.Получить()) <> 0;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьДоступность()
Элементы.ВнешниеОбработкиЗагрузитьИзФайла.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
Элементы.ВнешниеОбработкиОткрытьВОтладчике.Доступность = ЗначениеЗаполнено(КаталогФайловогоКэша);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписок(Команда = Неопределено)
КлючСтроки = ирОбщий.ПолучитьКлючТекущейСтрокиЛкс(Элементы.Список);
ОбновитьСписокНаСервере();
ирОбщий.ВосстановитьТекущуюСтрокуТаблицыФормыЛкс(Элементы.Список, КлючСтроки, Список);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьВОтладчике(Команда)
#Если ТонкийКлиент Или ВебКлиент Тогда
Сообщить("Функция доступна только в толстом клиенте");
Возврат;
#КонецЕсли
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
Если Не Файл.Существует() Тогда
ТекущиеДанные.Ссылка.ХранилищеОбработки.Получить().Записать(ПолноеИмяФайла);
КонецЕсли;
ирКэш.Получить().ОткрытьФайлВКонфигураторе(ПолноеИмяФайла, "Модуль");
ОбновитьСписок();
КонецПроцедуры
&НаКлиенте
Процедура ВнешниеОбработкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Элемент.ТекущиеДанные.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПерехватВнешнихОбработокПриИзменении(Элемент)
Если Не ПерехватВнешнихОбработок Тогда
ЭтаФорма.СозданиеВнешнихОбработокЧерезФайл = Ложь;
СохранитьНастройкиПользователяНаСервере();
КонецЕсли;
СохранитьНастройкиНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьАктуальныеНастройки(Команда)
ПрочитатьНастройкиНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ЗагрузитьИзФайлаНаСервере(ТекущиеДанные.Ссылка, КаталогФайловогоКэша);
ОбновитьСписок();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗагрузитьИзФайлаНаСервере(Ссылка, КаталогФайловогоКэша)
#Если Сервер И Не Сервер Тогда
Ссылка = Справочники.ДополнительныеОтчетыИОбработки.ПустаяСсылка();
#КонецЕсли
ПолноеИмяФайла = ирСервер.ПолноеИмяФайлаВнешнейОбработкиВФайловомКэшеЛкс(Ссылка, КаталогФайловогоКэша);
Файл = Новый Файл(ПолноеИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
ОбъектМодуля = ВнешниеОбработки.Создать(Файл.ПолноеИмя, Ложь);
СведенияМодуля = ОбъектМодуля.СведенияОВнешнейОбработке();
Объект = Ссылка.ПолучитьОбъект();
Объект.Версия = СведенияМодуля.Версия;
Объект.ХранилищеОбработки = Новый ХранилищеЗначения(Новый ДвоичныеДанные(Файл.ПолноеИмя));
Объект.Записать();
КонецПроцедуры
&НаКлиенте
Процедура КаталогФайловогоКэшаОткрытие(Элемент, СтандартнаяОбработка)
ЗапуститьПриложение(КаталогФайловогоКэша);
СтандартнаяОбработка = Ложь;
КонецПроцедуры

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Глобальный (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Глобальный (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Глобальный (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>true</Global>

View File

@ -0,0 +1,442 @@
#Если Не ТонкийКлиент И Не ВебКлиент Тогда
// Обертка. Добавляет глобальные переменные и методы в контекст поля текстового документа с контекстной подсказкой.
//
// Параметры
// ПолеТекстовогоДокументаСКонтекстнойПодсказкой - ОбработкаОбъект.ПолеТекстовогоДокументаСКонтекстнойПодсказкой.
//
Процедура ИнициализироватьГлобальныйКонтекстПодсказки(ПолеТекстовогоДокументаСКонтекстнойПодсказкой) Экспорт
ирОбщий.ИнициализироватьГлобальныйКонтекстПодсказкиЛкс(ПолеТекстовогоДокументаСКонтекстнойПодсказкой);
КонецПроцедуры // ИнициализироватьГлобальныйКонтекстПодсказки()
Функция ПолучитьЗначениеПеременнойИзТаблицыЛокальногоКонтекстаЛкс(ИмяПеременной, ТаблицаЛокальногоКонтекста) Экспорт
СтруктураКлюча = Новый Структура("нСлово, ТипСлова", НРег(ИмяПеременной), "Свойство");
НайденныеСтроки = ТаблицаЛокальногоКонтекста.НайтиСтроки(СтруктураКлюча);
Если НайденныеСтроки.Количество() > 0 Тогда
Возврат НайденныеСтроки[0].Значение;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции // ПолучитьЗначениеПеременнойИзТаблицыЛокальногоКонтекста()
// Вычисляет тип значения функции УК по внутренним параметрам и аргументам.
// Предназначена для вызвова из ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой.
//
// Параметры:
// ТаблицаЛокальногоКонтекста ТаблицаЗначений (см. ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой);
// МассивПараметров - Массив - выражений параметров.
//
// Возвращаемое значение:
// ТаблицаЗначений - ТаблицаСтруктурТипов (см. ирКлсПолеТекстовогоДокументаСКонтекстнойПодсказкой).
//
Функция ПравилоВычисленияТипаЗначенияКПА(ТаблицаЛокальногоКонтекста, МассивПараметров) Экспорт
лПлатформа = ирКэш.Получить();
ТаблицаСтруктурТипов = лПлатформа.ПолучитьНовуюТаблицуСтруктурТипа();
Алгоритм = ПолучитьЗначениеПеременнойИзТаблицыЛокальногоКонтекстаЛкс(МассивПараметров[0], ТаблицаЛокальногоКонтекста);
Если Алгоритм <> Неопределено Тогда
Структура = ирКПА(Алгоритм);
СтруктураТипа = лПлатформа.ПолучитьСтруктуруТипаИзЗначения(Структура);
ЗаполнитьЗначенияСвойств(ТаблицаСтруктурТипов.Добавить(), СтруктураТипа);
КонецЕсли;
Возврат ТаблицаСтруктурТипов;
КонецФункции // ПравилоВычисленияТипаЗначенияУК()
// Конструктор Параметров Алгоритма.
//
// Параметры:
// Алгоритм СправочникСсылка.ирАлгоритмы.
//
// Возвращаемое значение:
// Структура - ключ - имя, значение - значение.
//
Функция ирКПА(Знач Алгоритм) Экспорт
#Если Сервер И Не Сервер Тогда
Алгоритм = Справочники.ирАлгоритмы.ПустаяСсылка();
#КонецЕсли
СтруктураПараметров = Новый Структура;
Для Каждого СтрокаПараметра Из Алгоритм.Параметры Цикл
СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
КонецЦикла;
Возврат СтруктураПараметров;
КонецФункции // УК()
// Именованный Вызов Алгоритма. Передача параметров выполняется по имени.
//
// Параметры:
// Алгоритм СправочникСсылка.ирАлгоритмы, Строка - ссылка или GUID или имя сервиса;
// *СтруктураПараметров Структура, *Неопределено - ключи - имена параметров, значения - значения параметров;
// *пНастройкаАлгоритма - СправочникСсылка.НаборыЗначенийПараметров2iS, *Неопределено - набор значений параметров,
// имеющий приоритет ниже, чем СтруктураПараметров;
// *ПреобразоватьРезультатВСтрокуВнутр - Булево, *Ложь - преобразовать результат в строку внутреннюю (сериализовать)
//
// Возвращаемое значение:
// Произвольный.
//
Функция ирИВА(Знач Алгоритм, Знач СтруктураПараметров = Неопределено) Экспорт
Если СтруктураПараметров = Неопределено Тогда
СтруктураПараметров = Новый Структура;
КонецЕсли;
АлгоритмОбъект = ирОбщий.ПолучитьАлгоритмОбъектПоИдентификаторуЛкс(Алгоритм);
Результат = ирКэш.Получить().ВыполнитьМетодАлгоритма(АлгоритмОбъект, 1, СтруктураПараметров);
Возврат Результат;
КонецФункции // ирИВА()
// Позиционный Вызов Алгоритма. Передача параметров выполняется по позиции.
//
// Параметры
// Алгоритм СправочникСсылка.Сервисы2iS, Строка - ссылки или имя сервиса;
// *П... Произвольный, *Null параметры сервиса.
//
// Возвращаемое значение:
// Произвольное.
//
Функция ирПВА(Знач Алгоритм, П0=Null, П1=Null, П2=Null, П3=Null,
П4=Null, П5=Null, П6=Null, П7=Null, П8=Null, П9=Null) Экспорт
АлгоритмОбъект = ирОбщий.ПолучитьАлгоритмОбъектПоИдентификаторуЛкс(Алгоритм);
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
Результат = мПлатформа.ВыполнитьМетодАлгоритма(АлгоритмОбъект, 0, П0, П1, П2, П3, П4, П5, П6, П7, П8, П9);
Возврат Результат;
КонецФункции // УФ()
//#Область ГлобальныеПортативныеМетоды
///////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ ОЖИДАНИЯ
#Если Клиент Тогда
Процедура ОсвободитьВсеИндикаторыПроцессовОтложенноЛкс() Экспорт
ирОбщий.ОсвободитьВсеИндикаторыПроцессовЛкс();
КонецПроцедуры
Процедура СохранитьНастройкиПользователяОтложенноЛкс() Экспорт
СохранитьНастройкиПользователя();
КонецПроцедуры
#КонецЕсли
////////////////////////////////////////////////////////////////////////////////
// ОТЛАДКА
// Обертка ирОбщий.ПрЛкс(). Присваивает первому параметру второй.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
//
// Параметры:
// П1 Произвольный параметр1;
// П2 Произвольный параметр2;
//
// Возвращаемое значение:
// П2 Не используется.
//
Функция Пр(п1, п2 = Неопределено) Экспорт
Результат = ирОбщий.ПрЛкс(п1, п2);
Возврат Результат;
КонецФункции // Присвоить()
// Обертка ирОбщий.ДуЛкс(). Выполняет программный код, переданный как параметр.
// Остальные Параметры могут участвовать в теле этого кода.
// Удобно использовать в отладчике.
//
// Параметры:
// П1 Произвольный параметр1;
// П2 Произвольный параметр2;
// П3 Произвольный параметр3;
// П4 Произвольный параметр4;
//
// Возвращаемое значение:
// Неопределено Не используется.
//
Функция Ду(Знач ТекстПрограммы, п1 = 0, п2 = 0, п3 = 0, п4 = 0) Экспорт
Результат = ирОбщий.ДуЛкс(ТекстПрограммы, п1, п2, п3, п4);
Возврат Результат;
КонецФункции // Ду()
// Обертка ирОбщий.ОперироватьЛкс(). На клиенте открывает консоль кода с передачей туда всех своих параметров. На сервере сразу выполняет код.
// Изменения параметров возвращаются в вызывающий контекст в модальном режиме.
//
// Параметры:
// ТекстПрограммы - Строка - программный код для передачи в консоль кода или выполнения;
// РежимОперации Число - 0 - немодально, 1 - модально, 2 - неинтерактивно (на сервере всегда);
// СтрокаИменПараметров Строка - имена параметров для консоли кода через запятую, если не указаны, то будут оригинальные П*;
// П* Произвольный - параметры для использования при выполнении программного кода;
//
// Возвращаемое значение:
// Строка - описание ошибок.
//
Функция Оперировать(Знач ТекстПрограммы = "", Знач РежимОперации = 0, СтрокаИменПараметров= "",
П1 = Null, П2 = Null, П3 = Null, П4 = Null, П5 = Null, П6 = Null, П7 = Null, П8 = Null, П9 = Null) Экспорт
Результат = ирОбщий.ОперироватьЛкс(ТекстПрограммы, РежимОперации, СтрокаИменПараметров, П1, П2, П3, П4, П5, П6, П7, П8, П9);
Возврат Результат;
КонецФункции // РП()
// Обертка ирОбщий.ПерЛкс(). Подготавливает строку для помещения всех переменных в структуру с целью ее дальнейшего вычисления в отладчике "Вычислить(Пер())".
// Изменения параметров возвращаются в вызывающий контекст.
//
// Параметры:
// ТекстПрограммы - Строка, *"" - программный код для анализа, берется из буфера обмена если пустой.
//
// Возвращаемое значение:
// Строка для вычисления в отладчике.
//
Функция Пер(Знач ТекстПрограммы = "") Экспорт
Результат = ирОбщий.ПерЛкс(ТекстПрограммы);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ПолВТЛкс(). Функция получает структуру (Имя временной таблицы; Таблица значений) из указанного запроса или менеджера временных таблиц.
// Полезна для просмотра временных таблиц из менеджера временных таблиц серверного контекста в отладчике.
// Параметры:
// ЗапросИлиМенеджерВременныхТаблиц - Запрос, МенеджерВременныхТаблиц
// ИменаВременныхТаблиц - Строка, *"" - имена существующих, но возможно не используемых в тексте запроса временных таблиц через запятую
// ДопустимоеЧислоСтрок - Число, *500000 - выбирать из временной таблицы не более этого числа строк
//
// Результат - ТаблицаЗначений, Структура
//
Функция ПолВТ(ЗапросИлиМенеджерВременныхТаблиц, ИменаВременныхТаблиц = "", ДопустимоеЧислоСтрок = 500000) Экспорт
Результат = ирОбщий.ПолВТЛкс(ЗапросИлиМенеджерВременныхТаблиц, ИменаВременныхТаблиц, ДопустимоеЧислоСтрок);
Возврат Результат;
КонецФункции // ПолВТ()
// Обертка ирОбщий.ТехНЛкс(). Начать трассу в технологическом журнале. Сам технологический журнал надо заранее включить.
Функция ТехН() Экспорт
Результат = ирОбщий.ТехНЛкс();
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ТехКЛкс(). Кончить трассу в технологическом журнале и показать ее анализ
Функция ТехК() Экспорт
Результат = ирОбщий.ТехКЛкс();
Возврат Результат;
КонецФункции
#Если Клиент Тогда
// Обертка ирОбщий.ПопЛкс(). Подготавливает строку для вызова Оперировать() в отладчике. Вызвается путем вычисления "Вычислить(Поп())".
// Изменения параметров возвращаются в вызывающий контекст.
//
// Параметры:
// ТекстПрограммы - Строка, *"" - программный код для передачи в консоль кода или выполнения, берется из буфера обмена если пустой;
// РежимОперации Число - 0 - немодально, 1 - модально, 2 - неинтерактивно (на сервере всегда);
//
// Возвращаемое значение:
// Строка для вычисления в отладчике.
//
Функция Поп(Знач ТекстПрограммы = "", РежимОперации = 1) Экспорт
Результат = ирОбщий.ПопЛкс(ТекстПрограммы, РежимОперации);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ОпЛкс(). Модально открывает консоль кода с передачей туда всех своих параметров.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
// Изменения параметров возвращаются в вызывающий контекст.
//
// Параметры:
// П* Произвольный;
//
// Возвращаемое значение:
// Неопределено.
//
Функция Оп(П1 = Null, П2 = Null, П3 = Null, П4 = Null, П5 = Null) Экспорт
Результат = ирОбщий.ОпЛкс(П1, П2, П3, П4, П5);
Возврат Результат;
КонецФункции // Оп()
// Обертка ирОбщий.ОперироватьСтруктуройЛкс(). Открывает консоль кода с передачей туда структуры параметров.
// Изменения параметров возвращаются в структуру, но не в вызывающий контекст.
//
// Параметры:
// ТекстПрограммы - Строка;
// Модально Булево - открывать окно модально;
// СтруктураПараметров Структура - ключи соответсвуют именам параметов, а значения их значениям.
//
// Возвращаемое значение:
// Неопределено.
//
Функция ОперироватьСтруктурой(Знач ТекстПрограммы = "", Модально = Ложь, СтруктураПараметров) Экспорт
Результат = ирОбщий.ОперироватьСтруктуройЛкс(ТекстПрограммы, Модально, СтруктураПараметров);
Возврат Результат;
КонецФункции // РП()
// Обертка ирОбщий.ОпсЛкс(). Обертка ОперироватьСтруктурой. Модально открывает консоль кода с передачей туда всех своих параметров.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
// Изменения параметров возвращаются в структуру, но не в вызывающий контекст.
//
// Параметры:
// СтруктураПараметров Структура - ключи соответсвуют именам параметов, а значения их значениям.
//
// Возвращаемое значение:
// Неопределено.
//
Функция Опс(СтруктураПараметров) Экспорт
Результат = ирОбщий.ОпсЛкс(СтруктураПараметров);
Возврат Результат;
КонецФункции // Опс()
// Обертка ирОбщий.НаблюдатьЛкс(). Выводит в окно сообщений переданное значение вместе с типом и заданным представлением.
//
// Параметры:
// Значение - Произвольный;
// *Представление Строка, *"" - представление наблюдаемого значения.
//
Процедура Наблюдать(Значение, Представление = "") Экспорт
ирОбщий.НаблюдатьЛкс(Значение, Представление);
КонецПроцедуры // Наблюдать()
#КонецЕсли
// Обертка ирОбщий.ОтладитьЛкс(). Открывает нужную консоль для редактирования сложного объекта.
// Варианты использования в зависимости от типа параметра Объект:
// Запрос, COMОбъект - открывает Запрос или ADODB.Command или ADODB.Connection в консоли запросов
// ПостроительЗапроса - открывает результирующий запрос построителя запросов в консоли запросов
// ПостроительОтчета - открывает построитель отчета в консоли построителей отчетов, откуда можно открыть результирующий запрос построителя отчета в консоли запросов
// СхемаКомпоновки - открывает схему компоновки в консоли компоновки данных, откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов
//
// Параметры:
// Объект Запрос, ПостроительЗапроса, ПостроительОтчета, СхемаКомпоновкиДанных, COMОбъект.ADODB.Command - исследуемый объект;
// Модально Булево - открывать окно модально, должно быть Истина для использования функции в отладчике;
// НастройкаКомпоновкиИлиТекстЗапроса - НастройкиКомпоновкиДанных, Строка, *Неопределено - настройки для схемы компоновки, текст запроса для WMI или ADODB.Connection;
// ВнешниеНаборыДанных - Структура, *Неопределено - внешние наборы данных для схемы компоновки;
// ОтложеннаяОтладка - Булево - на сервере игнорируется (равно Истина), вместо открытия инструмента отладки сразу выполняется помещение
// объектов отладки во временное хранилище;
// ДопустимоеЧислоСтрокВоВременнойТаблицеОтложеннойОтладки - Число, *500000 - допустимое количество строк во всех временных таблицах запроса
// для отложенной отладки, больше этого количества строки не сохраняются, о чем сообщается в результате;
// Наименование - Строка - наименование сохраняемого объекта отложенной отладки;
//
// Возвращаемое значение:
// Неопределено.
//
Функция Отладить(Объект, Модально = Ложь, НастройкаКомпоновкиИлиТекстЗапроса = Неопределено, ВнешниеНаборыДанных = Неопределено,
ОтложенноеВыполнение = Ложь, ДопустимоеЧислоСтрокВоВременнойТаблицеОтложеннойОтладки = 500000, Наименование = "") Экспорт
Результат = ирОбщий.ОтладитьЛкс(Объект, Модально, НастройкаКомпоновкиИлиТекстЗапроса, ВнешниеНаборыДанных, ОтложенноеВыполнение, ДопустимоеЧислоСтрокВоВременнойТаблицеОтложеннойОтладки,, Наименование);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ОтЛкс(). Модально (на клиенте) или отложенно (на сервере) открывает нужную консоль для редактирования/отладки объекта.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
// Варианты использования в зависимости от типа параметра Объект:
// Запрос, COMОбъект - открывает Запрос или ADODB.Command или ADODB.Connection в консоли запросов
// ПостроительЗапроса - открывает результирующий запрос построителя запросов в консоли запросов
// ПостроительОтчета - открывает построитель отчета в консоли построителей отчетов, откуда можно открыть результирующий запрос построителя отчета в консоли запросов
// СхемаКомпоновки - открывает схему компоновки в консоли компоновки данных, откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов
// МакетКомпоновкиДанных - открытвает запросы макета компоновки в консоли запросов
//
// Параметры:
// Объект Запрос, ПостроительЗапроса, ПостроительОтчета, СхемаКомпоновкиДанных, МакетКомпоновкиДанных, COMОбъект.ADODB.Command - исследуемый объект;
// НастройкаКомпоновкиИлиТекстЗапросаИлиИменаВременныхТаблиц - НастройкиКомпоновкиДанных, Строка, *Неопределено -
// если первый параметр СхемаКомпоновкиДанных, то настройки компоновки,
// если первый параметр WMI или ADODB.Connection, то текст запроса,
// если первый параметр Запрос, имена временных таблиц разделенных запятыми;
// ВнешниеНаборыДанных - Структура, *Неопределено - внешние наборы данных для схемы компоновки;
// ОтложеннаяОтладка - Булево - на сервере игнорируется (равно Истина), вместо открытия инструмента отладки сразу выполняется помещение
// объектов отладки во временное хранилище;
// Наименование - Строка - наименование сохраняемого объекта отложенной отладки;
//
// Возвращаемое значение:
// Неопределено.
//
Функция От(Объект, НастройкаКомпоновкиИлиТекстЗапросаИлиИменаВременныхТаблиц = Неопределено, ВнешниеНаборыДанных = Неопределено, ОтложеннаяОтладка = Ложь, Наименование = "") Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Пустышка = ПолучитьФорму(Неопределено); // Чтобы использовалась форма именно этого объекта
КонецЕсли;
#КонецЕсли
Результат = ирОбщий.ОтЛкс(Объект, НастройкаКомпоновкиИлиТекстЗапросаИлиИменаВременныхТаблиц, ВнешниеНаборыДанных, ОтложеннаяОтладка, Наименование);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
ирПортативный.УсловныйДеструктор();
КонецЕсли;
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ИсследоватьЛкс(). Открывает исследователь объектов.
//
// Параметры:
// Объект Произвольный, *Неопределено - объект, который будет исследован;
// Модально Булево - открывать окно модально;
// КакКоллекцию Булево, *Ложь - исследовать как коллекцию вместо объекта.
//
// Возвращаемое значение:
// Сам объект.
//
Функция Исследовать(Объект = Неопределено, Модально = Ложь, КакКоллекцию = Ложь, ОтложенноеВыполнение = Ложь) Экспорт
Результат = ирОбщий.ИсследоватьЛкс(Объект, Модально, КакКоллекцию, ОтложенноеВыполнение);
Возврат Результат;
КонецФункции // Исследовать()
// Обертка ирОбщий.ИсЛкс(). Модально открывает объект в исследователе объектов
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
Функция Ис(Объект = Неопределено, КакКоллекцию = Ложь, ОтложенноеВыполнение = Ложь) Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Пустышка = ПолучитьФорму(Неопределено); // Чтобы использовалась форма именно этого объекта
КонецЕсли;
#КонецЕсли
Результат = ирОбщий.ИсЛкс(Объект, КакКоллекцию, ОтложенноеВыполнение);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
ирПортативный.УсловныйДеструктор();
КонецЕсли;
Возврат Результат;
КонецФункции // Ис()
// Обертка ирОбщий.ФайлЛкс() Возвращает текст из файла
Функция Файл(ИмяФайла) Экспорт
Результат = ирОбщий.ФайлЛкс(ИмяФайла);
Возврат Результат;
КонецФункции
//#КонецОбласти
#КонецЕсли

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Программный интерфейс расширения "Инструменты разработчика" для встравивания в конфигурацию</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Программный интерфейс расширения "Инструменты разработчика" для встравивания в конфигурацию</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Программный интерфейс расширения "Инструменты разработчика" для встравивания в конфигурацию</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>

View File

@ -0,0 +1,68 @@
// Версия модуля X.XX
// Встройте этот модуль с именем ирИнтерфейс в состав целевой конфигурации, чтобы обеспечить слабую интеграцию с расширением "Инструменты разработчика".
#Если Клиент Тогда
Функция ПредложитьЗагрузитьРасширениеЛкс() Экспорт
Ответ = Вопрос("Расширение конфигурации ""Инструменты разработчика"" не установлено. Хотите открыть страницу скачивания?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.ОК Тогда
ЗапуститьПриложение("http://devtool1c.ucoz.ru/index/rasshirenie_variant/0-52");
КонецЕсли;
КонецФункции
#КонецЕсли
#Если Не ТонкийКлиент И Не ВебКлиент Тогда
Функция ЛиРасширениеУстановлено() Экспорт
Результат = Вычислить("РасширенияКонфигурации").Получить(Новый Структура("Имя", "ИнструментыРазработчикаTormozit")).Количество() > 0;
Возврат Результат;
КонецФункции
// Конструктор таблицы параметров алгоритма
// Результат - ТаблицаЗначений - колонки "Имя, Значение, Вход, Выход, ТипЗначения, Комментарий"
Функция НоваяТаблицаПараметровАлгоритмаЛкс() Экспорт
ОбщийМодульИР = Вычислить("ирОбщий");
#Если Сервер И Не Сервер Тогда
ОбщийМодульИР = ирОбщий;
#КонецЕсли
Возврат ОбщийМодульИР.НоваяТаблицаПараметровАлгоритмаЛкс();
КонецФункции
// Конструктор таблицы методов контекстной подсказки
// Результат - ТаблицаЗначений - колонки "Имя, ТипЗначения"
Функция НоваяТаблицаМетодовПодсказкиЛкс() Экспорт
ОбщийМодульИР = Вычислить("ирОбщий");
#Если Сервер И Не Сервер Тогда
ОбщийМодульИР = ирОбщий;
#КонецЕсли
Возврат ОбщийМодульИР.НоваяТаблицаМетодовПодсказкиЛкс();
КонецФункции
// Открыть редактирование текста алгоритма с параметрами в консоли кода
// Парамерты:
// СтруктураАлгоритма - Структура - возвращаемый
// "ТекстАлгоритма" - Строка - текст алгоритма,
// "ВнутренниеПараметры" - ТаблицаЗначений - таблица с конструктором НоваяТаблицаПараметровАлгоритмаЛкс с внутренними (значения определяются при редактировании) параметрами алгоритма;
// ВнешниеПараметры* - ТаблицаЗначений - таблица с конструктором НоваяТаблицаПараметровАлгоритмаЛкс с внешними (значения определяются при каждом выполнении) параметрами алгоритма;
// Методы* - ТаблицаЗначений - таблица с конструктором НоваяТаблицаМетодовПодсказкиЛкс с дополнительными методами доступными в алгоритме;
// Результат - Булево - принял ли изменения пользователь
Функция РедактироватьАлгоритмЧерезСтруктуруЛкс(СтруктураАлгоритма, ВнешниеПараметры = Неопределено, Методы = Неопределено) Экспорт
ОбщийМодульИР = Вычислить("ирОбщий");
#Если Сервер И Не Сервер Тогда
ОбщийМодульИР = ирОбщий;
#КонецЕсли
Возврат ОбщийМодульИР.РедактироватьАлгоритмЧерезСтруктуруЛкс(СтруктураАлгоритма, ВнешниеПараметры, Методы);
КонецФункции
#КонецЕсли

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Ир кэш</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Ир кэш</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Ир кэш</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>

View File

@ -0,0 +1,845 @@
//ирПортативный Перем ирПлатформа Экспорт; // Эта переменная нужна только здесь
//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
#Если Не ТонкийКлиент И Не ВебКлиент Тогда
Функция Получить() Экспорт
// Не следует использовать для хранения таких данных, переинициализация которых автоматически невозможна или приведет к ошибкам
//#Если Клиент Или ВнешнееСоединение Или Не Сервер Тогда
Попытка
ирПлатформа = Вычислить("ирПлатформа");
Исключение
КонецПопытки;
Если ирПлатформа = Неопределено Тогда
ирПлатформа = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирПлатформа");
#Если Сервер И Не Сервер Тогда
ирПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
КонецЕсли;
Возврат ирПлатформа;
// В 8.3 это уже не работает. http://partners.v8.1c.ru/forum/thread.jsp?id=1058206#1058206
//#Иначе
// ИмяПараметраСеанса = "ирКэш";
// Попытка
// НадоИнициализировать = ПараметрыСеанса[ИмяПараметраСеанса] = Неопределено;
// Исключение
// НадоИнициализировать = Истина;
// КонецПопытки;
// Если Не НадоИнициализировать Тогда
// Кэш = ПолучитьИзВременногоХранилища(ПараметрыСеанса[ИмяПараметраСеанса]);
// КонецЕсли;
// Если ТипЗнч(Кэш) <> Тип("Структура") Тогда
// Кэш = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработкп.ирПлатформа");
// //ПараметрыСеанса[ИмяПараметраСеанса] = "1";
// ПараметрыСеанса[ИмяПараметраСеанса] = ПоместитьВоВременноеХранилище(Кэш, Новый УникальныйИдентификатор);
// КонецЕсли;
// Возврат Кэш;
//#КонецЕсли
КонецФункции // Получить()
Функция ИмяПродукта() Экспорт
Возврат "ИнструментыРазработчикаTormozit";
КонецФункции
Функция КомпоновщикТаблицыМетаданныхЛкс(Знач ПолноеИмяМД, ВызыватьИсключениеПриОтсутствииПрав = Истина, ИндексПараметраПериодичность = Неопределено,
ВыражениеПараметраПериодичность = "", ИменаВместоПредставлений = Ложь) Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("КомпоновщикТаблицыМетаданныхЛкс");
КлючНаборПараметров = "" + ПолноеИмяМД + ";" + ВызыватьИсключениеПриОтсутствииПрав + ";" + ИндексПараметраПериодичность + ";" + ВыражениеПараметраПериодичность
+ ";" + ИменаВместоПредставлений;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
СхемаКомпоновкиДанных = ирОбщий.ПолучитьСхемуКомпоновкиПоОбъектуМетаданныхЛкс(ПолноеИмяМД,, Ложь,, ИндексПараметраПериодичность, ВыражениеПараметраПериодичность,
ИменаВместоПредставлений);
#Если Сервер И Не Сервер Тогда
СхемаКомпоновкиДанных = Новый СхемаКомпоновкиДанных;
#КонецЕсли
Попытка
ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
Исключение
// Антибаг платформы 8.2.18
// Ошибка при вызове конструктора (ИсточникДоступныхНастроекКомпоновкиДанных)
// ИсточникДоступныхНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных);
//по причине:
//Ошибка получения информации набора данных
//по причине:
//Ошибка в запросе набора данных
//по причине:
//{(1, 17)}: Неверное присоединение
//ВЫБРАТЬ Т.* ИЗ <<?>>КАК Т
ОбъектМД = Метаданные.НайтиПоПолномуИмени(ПолноеИмяМД);
Если ОбъектМД = Неопределено Тогда
// Возможно эта логика уже есть в какой то функции
лПолноеИмяМД = ПолноеИмяМД;
Фрагменты = ирОбщий.ПолучитьМассивИзСтрокиСРазделителемЛкс(ПолноеИмяМД);
Если Фрагменты.Количество() > 1 Тогда
Фрагменты.Удалить(Фрагменты.Количество() - 1);
лПолноеИмяМД = ирОбщий.ПолучитьСтрокуСРазделителемИзМассиваЛкс(Фрагменты, ".");
КонецЕсли;
ОбъектМД = Метаданные.НайтиПоПолномуИмени(лПолноеИмяМД);
КонецЕсли;
Если Ложь
Или ОбъектМД = Неопределено
Или Не ПравоДоступа("Чтение", ОбъектМД)
Тогда
Если ВызыватьИсключениеПриОтсутствииПрав Тогда
ВызватьИсключение "Таблица отсутствует или нет прав на ее чтение """ + ПолноеИмяМД + """";
Иначе
Возврат Неопределено;
КонецЕсли;
Иначе
ВызватьИсключение;
КонецЕсли;
КонецПопытки;
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
// Для сравнения скорости в отладчике. Примерно та же скорость через построитель.
//ПсевдонимТаблицы = "Т";
//ПолноеИмяИлиОбъектМД = ПолноеИмяМД;
//Если ТипЗнч(ПолноеИмяИлиОбъектМД) = Тип("Строка") Тогда
// ПолноеИмяМД = ПолноеИмяИлиОбъектМД;
//Иначе
// ПолноеИмяМД = ПолноеИмяИлиОбъектМД.ПолноеИмя();
//КонецЕсли;
//ПолноеИмяТаблицыБД = ирОбщий.ПолучитьИмяТаблицыИзМетаданныхЛкс(ПолноеИмяМД);
//Если ИндексПараметраПериодичность <> Неопределено Тогда
// ПолноеИмяТаблицыБД = ПолноеИмяТаблицыБД + "(";
// Для Индекс = 1 По ИндексПараметраПериодичность Цикл
// ПолноеИмяТаблицыБД = ПолноеИмяТаблицыБД + ",";
// КонецЦикла;
// ПолноеИмяТаблицыБД = ПолноеИмяТаблицыБД + ВыражениеПараметраПериодичность + ")";
//КонецЕсли;
//ТекстЗапроса = "ВЫБРАТЬ " + ПсевдонимТаблицы + ".* ИЗ " + ПолноеИмяТаблицыБД + " КАК " + ПсевдонимТаблицы;
//Построитель = Новый ПостроительЗапроса(ТекстЗапроса);
//Построитель.ЗаполнитьНастройки();
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = КомпоновщикНастроек;
КонецЕсли;
Возврат КомпоновщикНастроек;
КонецФункции
Функция ПолучитьПоляТаблицыБДЛкс(ПолноеИмяТаблицыБД, ВызыватьИсключениеПриОтсутствииПрав = Истина, ИндексПараметраПериодичность = Неопределено, ВыражениеПараметраПериодичность = "") Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьПоляТаблицыБДЛкс");
КлючНаборПараметров = "" + ПолноеИмяТаблицыБД + ";" + ВызыватьИсключениеПриОтсутствииПрав + ";" + ИндексПараметраПериодичность + ";" + ВыражениеПараметраПериодичность;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
Результат = ирОбщий.ПолучитьПоляТаблицыБДЛкс(ПолноеИмяТаблицыБД, ВызыватьИсключениеПриОтсутствииПрав, ИндексПараметраПериодичность, ВыражениеПараметраПериодичность);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ИндивидуальныеТаблицыКонстантДоступныЛкс() Экспорт
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
Результат = Истина
И мПлатформа.ВерсияПлатформы >= 802014
И Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_2_13
И Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.Версия8_1;
Возврат Результат;
КонецФункции
Функция ПолучитьТаблицуВсехТаблицБДЛкс() Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьТаблицуВсехТаблицБДЛкс");
КлючНаборПараметров = "";
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
ТаблицаВсехТаблицБД = Неопределено;
// Этот способ оказался в большинстве случаев медленнее чем вычислять таблицу каждый раз
//Если мПлатформа.ИДВерсииПлатформы > "82" Тогда
// #Если Клиент Тогда
// Состояние("Получение структуры хранения БД...");
// #КонецЕсли
// СтруктураХраненияБД = ПолучитьСтруктуруХраненияБазыДанных(, Ложь);
// #Если Клиент Тогда
// Состояние("");
// #КонецЕсли
// ХМЛСтруктурыХранения = ЗначениеВСтрокуВнутр(СтруктураХраненияБД);
// Хеширование = Вычислить("Новый ХешированиеДанных(ХешФункция.MD5)");
// Хеширование.Добавить(ХМЛСтруктурыХранения);
// ХешСтруктурыХранения = Хеширование.ХешСумма;
// ФайлКэша = Новый Файл(мПлатформа.КаталогФайловогоКэша + "\irAllDBTables.tbl");
// Если ФайлКэша.Существует() Тогда
// КешТаблиц = ЗначениеИзФайла(ФайлКэша.ПолноеИмя);
// Если КешТаблиц.ХешСтруктурыХранения = ХешСтруктурыХранения Тогда
// ТаблицаВсехТаблицБД = КешТаблиц.ТаблицаВсехТаблицБД;
// КонецЕсли;
// КонецЕсли;
//КонецЕсли;
Если ТаблицаВсехТаблицБД = Неопределено Тогда
ТаблицаВсехТаблицБД = Новый ТаблицаЗначений;
ТаблицаВсехТаблицБД.Колонки.Добавить("ПолноеИмяМД");
ТаблицаВсехТаблицБД.Колонки.Добавить("НПолноеИмя");
ТаблицаВсехТаблицБД.Колонки.Добавить("ПолноеИмя");
ТаблицаВсехТаблицБД.Колонки.Добавить("Имя");
ТаблицаВсехТаблицБД.Колонки.Добавить("Представление");
ТаблицаВсехТаблицБД.Колонки.Добавить("Тип");
ТаблицаВсехТаблицБД.Колонки.Добавить("Схема");
ТаблицаВсехТаблицБД.Колонки.Добавить("ИндексПараметраОтбора");
ТаблицаВсехТаблицБД.Колонки.Добавить("КоличествоСтрок");
КоллекцияКорневыхТипов = Новый Массив;
СтрокиМетаОбъектов = мПлатформа.ТаблицаТиповМетаОбъектов.НайтиСтроки(Новый Структура("Категория", 0));
Для Каждого СтрокаТаблицыМетаОбъектов Из СтрокиМетаОбъектов Цикл
Единственное = СтрокаТаблицыМетаОбъектов.Единственное;
Если Ложь
Или (Истина
И Единственное = "Константа"
И ирКэш.ИндивидуальныеТаблицыКонстантДоступныЛкс())
Или Единственное = "КритерийОтбора"
Или Единственное = "ЖурналДокументов"
Или ирОбщий.ЛиКорневойТипПеречисленияЛкс(Единственное)
Или ирОбщий.ЛиКорневойТипСсылочногоОбъектаБДЛкс(Единственное)
Или ирОбщий.ЛиКорневойТипРегистраБДЛкс(Единственное)
Или ирОбщий.ЛиКорневойТипПоследовательностиЛкс(Единственное)
Тогда
КоллекцияКорневыхТипов.Добавить(Единственное);
КонецЕсли;
КонецЦикла;
Если мПлатформа.ВерсияПлатформы >= 802014 Тогда
Для Каждого МетаВнешнийИсточникДанных Из Метаданные.ВнешниеИсточникиДанных Цикл
КоллекцияКорневыхТипов.Добавить(МетаВнешнийИсточникДанных.ПолноеИмя());
КонецЦикла;
КонецЕсли;
Если Метаданные.Константы.Количество() > 0 Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, "Константы",, "Константы");
КонецЕсли;
мСтрокаТипаВнешнегоИсточникаДанных = мПлатформа.ПолучитьСтрокуТипаМетаОбъектов("ВнешнийИсточникДанных", , 0);
ИндикаторТипов = ирОбщий.ПолучитьИндикаторПроцессаЛкс(КоллекцияКорневыхТипов.Количество(), "Анализ структуры БД");
Для Каждого КорневойТип Из КоллекцияКорневыхТипов Цикл
ирОбщий.ОбработатьИндикаторЛкс(ИндикаторТипов);
СтрокаКорневогоТипа = мПлатформа.ПолучитьСтрокуТипаМетаОбъектов(КорневойТип);
Если СтрокаКорневогоТипа = Неопределено Тогда
СтрокаКорневогоТипа = мСтрокаТипаВнешнегоИсточникаДанных;
МножественноеКорневогоТипа = СтрокаКорневогоТипа.Множественное;
ОбъектМДКорневогоТипа = Метаданные.НайтиПоПолномуИмени(КорневойТип);
КоллекцияМетаданных = ОбъектМДКорневогоТипа.Таблицы;
ПредставлениеКатегории = ОбъектМДКорневогоТипа.Представление();
СхемаТаблиц = ОбъектМДКорневогоТипа.Имя;
КорневойТип = "Внешняя";
Иначе
МножественноеКорневогоТипа = СтрокаКорневогоТипа.Множественное;
ПредставлениеКатегории = ирОбщий.ПолучитьПредставлениеИзИдентификатораЛкс(МножественноеКорневогоТипа);
СхемаТаблиц = "";
Если КорневойТип = "Перерасчет" Тогда
КоллекцияМетаданных = Новый Массив;
Для Каждого МетаРегистрРасчета Из Метаданные.РегистрыРасчета Цикл
Для Каждого Перерасчет Из МетаРегистрРасчета.Перерасчеты Цикл
КоллекцияМетаданных.Добавить(Перерасчет);
КонецЦикла;
КонецЦикла;
Иначе
КоллекцияМетаданных = Метаданные[МножественноеКорневогоТипа];
КонецЕсли;
КонецЕсли;
Если КоллекцияМетаданных.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
//ПредставлениеТипаТаблицы = ирОбщий.ПолучитьПредставлениеИзИдентификатораЛкс(МножественноеКорневогоТипа);
ИндикаторТипа = ирОбщий.ПолучитьИндикаторПроцессаЛкс(КоллекцияМетаданных.Количество(), "Анализ " + КорневойТип);
Для Каждого МетаИсточник Из КоллекцияМетаданных Цикл
ирОбщий.ОбработатьИндикаторЛкс(ИндикаторТипа);
ПолноеИмяМД = МетаИсточник.ПолноеИмя();
ТипТаблицы = КорневойТип;
Если ТипТаблицы = "КритерийОтбора" Тогда
ТипТаблицы = "ВиртуальнаяТаблица";
КонецЕсли;
СтрокаОсновнойТаблицы = ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ирОбщий.ПолучитьИмяТаблицыИзМетаданныхЛкс(ПолноеИмяМД,, Ложь), ПолноеИмяМД, ТипТаблицы, МетаИсточник.Имя,
МетаИсточник.Представление(), СхемаТаблиц, , МетаИсточник);
Если ирОбщий.ЛиКорневойТипСсылочногоОбъектаБДЛкс(КорневойТип) Тогда
СтруктураТЧ = ирОбщий.ПолучитьТабличныеЧастиОбъектаЛкс(МетаИсточник);
Для Каждого КлючИЗначение Из СтруктураТЧ Цикл
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + "." + КлючИЗначение.Ключ, ПолноеИмяМД + ".ТабличнаяЧасть." + КлючИЗначение.Ключ, "ТабличнаяЧасть", ,
МетаИсточник.Представление() + "." + КлючИЗначение.Значение);
КонецЦикла;
Если КорневойТип = "БизнесПроцесс" Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Точки",, "Точки", , МетаИсточник.Представление() + "." + "Точки");
КонецЕсли;
Если КорневойТип = "Задача" Тогда
Если МетаИсточник.Адресация <> Неопределено Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".ЗадачиПоИсполнителю",, "ВиртуальнаяТаблица", ,
МетаИсточник.Представление() + "." + "Задачи по исполнителю",,,, 1);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ирОбщий.ЕстьТаблицаИзмененийОбъектаМетаданных(МетаИсточник) Тогда
//Если Ложь
// Или ирОбщий.ЛиКорневойТипСсылочногоОбъектаБДЛкс(КорневойТип)
// Или ирОбщий.ЛиКорневойТипРегистраБДЛкс(КорневойТип)
// Или ирОбщий.ЛиКорневойТипПоследовательностиЛкс(КорневойТип)
//Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, СтрокаОсновнойТаблицы.ПолноеИмя + ".Изменения", , "Изменения", СтрокаОсновнойТаблицы.Имя,
СтрокаОсновнойТаблицы.Представление + "." + "Изменения");
//КонецЕсли;
КонецЕсли;
Если КорневойТип = "РегистрСведений" Тогда
Если МетаИсточник.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".СрезПоследних",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Срез последних",,,, 1);
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".СрезПервых",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Срез первых",,,, 1);
КонецЕсли;
ИначеЕсли КорневойТип = "РегистрНакопления" Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Обороты",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Обороты",,,, 3);
Если МетаИсточник.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Остатки",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Остатки",,,, 1);
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".ОстаткиИОбороты",, "ВиртуальнаяТаблица", ,
МетаИсточник.Представление() + "." + "Остатки и обороты",,,, 4);
КонецЕсли;
ИначеЕсли КорневойТип = "РегистрБухгалтерии" Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".ДвиженияССубконто",, "ДвиженияССубконто", ,
МетаИсточник.Представление() + "." + "Движения с субконто",,,, 2);
Если МетаИсточник.ПланСчетов.МаксКоличествоСубконто > 0 Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Субконто",, "Субконто", , МетаИсточник.Представление() + "." + "Субконто");
КонецЕсли;
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Обороты",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Обороты",,,, 5);
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".ОборотыДтКт",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Обороты Дт Кт",,,, 7);
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Остатки",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Остатки",,,, 3);
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".ОстаткиИОбороты",, "ВиртуальнаяТаблица", , МетаИсточник.Представление() + "." + "Остатки и обороты",,,, 6);
//ИначеЕсли КорневойТип = "РегистрРасчета" Тогда
// Для Каждого Перерасчет Из МетаИсточник.Перерасчеты Цикл
// ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ирОбщий.ПолучитьИмяТаблицыИзМетаданныхЛкс(Перерасчет), "Перерасчет", Перерасчет.Имя, Перерасчет.Представление(), , , Перерасчет);
// КонецЦикла;
ИначеЕсли КорневойТип = "Последовательность" Тогда
ирОбщий.ДобавитьДоступнуюТаблицуБДЛкс(ТаблицаВсехТаблицБД, ПолноеИмяМД + ".Границы",, "Границы", , МетаИсточник.Представление() + "." + "Границы");
КонецЕсли;
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
ТаблицаВсехТаблицБД.Индексы.Добавить("НПолноеИмя");
ТаблицаВсехТаблицБД.Сортировать("НПолноеИмя");
//Если ФайлКэша <> Неопределено Тогда
// КешТаблиц = Новый Структура("ТаблицаВсехТаблицБД, ХешСтруктурыХранения", ТаблицаВсехТаблицБД, ХешСтруктурыХранения);
// ЗначениеВФайл(ФайлКэша.ПолноеИмя, КешТаблиц);
//КонецЕсли;
КонецЕсли;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = ТаблицаВсехТаблицБД;
КонецЕсли;
Возврат ТаблицаВсехТаблицБД;
КонецФункции
Функция ЛиПортативныйРежимЛкс() Экспорт
Попытка
Пустышка = ирПортативный.мВнешниеМодули;
Результат = Истина;
Исключение
Результат = Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция ЛиЭтоРасширениеКонфигурацииЛкс() Экспорт
Результат = ирКэш.ЭтотРасширениеКонфигурацииЛкс() <> Неопределено;
Возврат Результат;
КонецФункции
Функция ЭтотРасширениеКонфигурацииЛкс() Экспорт
Результат = Неопределено;
Если Не ирОбщий.РежимСовместимостиМеньше8_3_4Лкс() Тогда
Попытка
ЭтиРасширения = Вычислить("РасширенияКонфигурации").Получить(); // Антибаг платформы https://partners.v8.1c.ru/forum/t/1607016/m/1607016
Исключение
Возврат Результат;
КонецПопытки;
ОтборРасширений = Новый Структура("Имя", ирОбщий.ИмяПродуктаЛкс());
ЭтиРасширения = Вычислить("РасширенияКонфигурации").Получить(ОтборРасширений);
Если ЭтиРасширения.Количество() > 0 Тогда
Результат = ЭтиРасширения[0];
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьСтруктуруХраненияБДЛкс(ЛиИменаБД = Ложь, ВычислитьИменаИндексов = Истина, АдресЧужойСхемыБД = "") Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьСтруктуруХраненияБДЛкс");
КлючНаборПараметров = "" + ЛиИменаБД + ";" + ВычислитьИменаИндексов + ";" + АдресЧужойСхемыБД;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
Результат = ирОбщий.ПолучитьСтруктуруХраненияБДЛкс(, ЛиИменаБД, ВычислитьИменаИндексов, АдресЧужойСхемыБД);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
// Получить словарь метаданных состоящий из шаблонов имен таблиц
//
// Параметры:
// ЛиИменаБД - Булево
//
// Возвращаемое значение:
// Соответствие - словарь шаблонов имен метаданных. Ключ - наименование объекта
// метаданных, где его номер заменен на номер позиции этого
// числа в строке; Значение - количество чисел в строке
//
Функция ПолучитьСловарьШаблоновМетаданныхЛкс(ЛиИменаБД = Ложь, АдресЧужойСхемыБД = "") Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьСловарьШаблоновМетаданныхЛкс");
КлючНаборПараметров = "" + ЛиИменаБД + ";" + АдресЧужойСхемыБД;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
СтруктураХраненияБД = ирКэш.ПолучитьСтруктуруХраненияБДЛкс(ЛиИменаБД, , АдресЧужойСхемыБД);
// Создать словарь метаданных
СловарьМетаданных = Новый Соответствие;
КоличествоСимволов = 0;
ПозицияЧисла = 0;
// Обработать структуру базы
Для Каждого СтрокаСтруктурыБазы Из СтруктураХраненияБД Цикл
// Скопировать имя таблицы
ИмяТаблицыХранения = НРег(Лев(СтрокаСтруктурыБазы.ИмяТаблицыХранения, СтрДлина(СтрокаСтруктурыБазы.ИмяТаблицыХранения)));
ШаблонИмениТаблицыХранения = "";
КоличествоЧисел = 0;
ПоследнееИмяШаблона = "";
// Получить шаблон имени
Пока ирОбщий.НайтиЧислоВСтрокеЛкс(ИмяТаблицыХранения, ПозицияЧисла, КоличествоСимволов) Цикл
КоличествоЧисел = КоличествоЧисел + 1;
ПоследнееИмяШаблона = Лев(ИмяТаблицыХранения, ПозицияЧисла - 1);
ШаблонИмениТаблицыХранения = ШаблонИмениТаблицыХранения + ПоследнееИмяШаблона + XMLСтрока(КоличествоЧисел);
ИмяТаблицыХранения = Прав(ИмяТаблицыХранения, СтрДлина(ИмяТаблицыХранения) - ПозицияЧисла - КоличествоСимволов + 1);
КонецЦикла;
ШаблонИмениТаблицыХранения = ШаблонИмениТаблицыХранения + ИмяТаблицыХранения;
СловарьМетаданных.Вставить(ШаблонИмениТаблицыХранения, КоличествоЧисел);
Если Не ЛиИменаБД Тогда
// Сохранить шаблон дочерней таблицы независимо
Если КоличествоЧисел > 1 Тогда
Если Лев(ПоследнееИмяШаблона, 1) = "." Тогда
ПоследнееИмяШаблона = Сред(ПоследнееИмяШаблона, 2);
КонецЕсли;
СловарьМетаданных.Вставить(ПоследнееИмяШаблона + "1", 1);
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Предобразовать соответствие в ТЗ и отсортировать ее по ключу в обратном порядке
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Ключ");
Результат.Колонки.Добавить("Значение");
Для Каждого СтрокаСловаря Из СловарьМетаданных Цикл
СтрокаТаблицыСловаря = Результат.Добавить();
СтрокаТаблицыСловаря.Ключ = НРег(СтрокаСловаря.Ключ);
СтрокаТаблицыСловаря.Значение = СтрокаСловаря.Значение;
КонецЦикла;
Результат.Сортировать("Ключ Убыв");
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьСеансПустойИнфобазы1С8Лкс(Знач ТипCOMОбъекта = "Application", Знач Видимость = Ложь, Знач ОбработатьИсключениеПодключения = Ложь,
ОписаниеОшибки = "", ИмяСервераПроцессов = "") Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьСеансПустойИнфобазы1С8Лкс");
КлючНаборПараметров = "" + ТипCOMОбъекта + ";" + Видимость + ";" + ОбработатьИсключениеПодключения + ";" + ОписаниеОшибки + ";" + ИмяСервераПроцессов;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
СтрокаСоединения = ирОбщий.ПолучитьСтрокуСоединенияПустойИнфобазыЛкс();
Результат = ирОбщий.СоздатьСеансИнфобазы1С8Лкс(СтрокаСоединения, , , ТипCOMОбъекта, Видимость, ОбработатьИсключениеПодключения,
ОписаниеОшибки, ИмяСервераПроцессов);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьБуферСравненияЛкс(ТипДанных) Экспорт
Попытка
ирПлатформа = Вычислить("ирПлатформа");
Исключение
КонецПопытки;
Если ирПлатформа = Неопределено Тогда
Результат = Новый Массив();
Иначе
Результат = ирПлатформа.БуферыСравнения[ТипДанных];
Если Результат = Неопределено Тогда
Результат = Новый Массив;
ирПлатформа.БуферыСравнения[ТипДанных] = Результат;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ПолучитьWinAPI() Экспорт
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
WinAPI = мПлатформа.ПолучитьWinAPI();
Возврат WinAPI;
КонецФункции
Функция ПолучитьФорматБуфераОбмена1СЛкс() Экспорт
WinAPI = ирКэш.ПолучитьWinAPI();
ФорматБуфераОбмена1С = WinAPI.RegisterClipboardFormat("V8Value");
Возврат ФорматБуфераОбмена1С;
КонецФункции
Функция Это64битнаяОСЛкс(Компьютер = Неопределено) Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("Это64битнаяОСЛкс");
КлючНаборПараметров = "" + Компьютер;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
мWMI = ирКэш.ПолучитьCOMОбъектWMIЛкс(Компьютер);
// http://www.forum.mista.ru/topic.php?id=752260
//ИмяКласса = "Win32_OperatingSystem";
//КоллекцияОС = мWMI.InstancesOf(ИмяКласса);
//Для каждого лОС Из КоллекцияОС Цикл
// Прервать;
//КонецЦикла;
//Результат = Лев(лОС.OSArchitecture, 2) = "64";
РезультатЗапроса = мWMI.ExecQuery("select AddressWidth from Win32_Processor where DeviceID=""CPU0"" AND AddressWidth=64");
Результат = РезультатЗапроса.Count > 0;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает смещение времени из-за некорректной функции ПолучитьВремяИзменения()
// Часть примечание из описания функции:
// В режиме совместимости выдает местное время последней модификации файла с ошибкой NTFS.
// Если файл изменен летом, а просматривается зимой, то полученное время отстает на 1 час.
// Если файл изменен зимой, а просматривается летом, то полученное время опережает на 1 час.
//
// Источник - http://infostart.ru/public/323233/
// Автор - OtTech http://infostart.ru/profile/492011/
//
// Возвращаемое значение:
// Число - Количество секунд смещения.
//
Функция ПолучитьСмещениеВремениЛкс() Экспорт
ИмяФайла = ПолучитьИмяВременногоФайла();
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Записать(ИмяФайла);
Файл = Новый Файл(ИмяФайла);
Разница = ОКР((ТекущаяДата() - Файл.ПолучитьВремяИзменения()) / 3600);
УдалитьФайлы(ИмяФайла);
Возврат Разница * 3600;
КонецФункции
//#Если Клиент Тогда
Функция ПолучитьАнализТехножурналаЛкс() Экспорт
Результат = ирОбщий.ПолучитьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирАнализТехножурнала");
Возврат Результат;
КонецФункции
//#КонецЕсли
Функция ПолучитьСеансТонкогоКлиентаЛкс() Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьСеансТонкогоКлиентаЛкс");
КлючНаборПараметров = "";
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
СвязанныйСеансТонкогоКлиента = ирОбщий.ЗапуститьСеансПодПользователемЛкс(ИмяПользователя(),, "c.Application",,,, Ложь, Ложь);
Попытка
СвязанныйСеансТонкогоКлиента.Visible = Истина;
Исключение
Сообщить("Не удалось подключить тонкий клиент через COM", СтатусСообщения.Внимание);
Возврат Неопределено;
КонецПопытки;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = СвязанныйСеансТонкогоКлиента;
КонецЕсли;
Возврат СвязанныйСеансТонкогоКлиента;
КонецФункции
Функция ОбъектыМетаданныхСРегистрациейИзменений() Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ОбъектыМетаданныхСРегистрациейИзменений");
КлючНаборПараметров = "";
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
Результат = Новый Соответствие;
Для Каждого МетаПланОбмена Из Метаданные.ПланыОбмена Цикл
Для Каждого ЭлементСостава Из МетаПланОбмена.Состав Цикл
Результат[ЭлементСостава.Метаданные.ПолноеИмя()] = 1;
КонецЦикла;
КонецЦикла;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ВКОбщая() Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ВКОбщая");
КлючНаборПараметров = "";
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
Попытка
ВК = Новый ("AddIn.ирОбщая.AddIn");
Исключение
Это64битныйПроцесс = Это64битныйПроцессЛкс();
ИмяМакета = "ВК";
Если Это64битныйПроцесс Тогда
ИмяМакета = ИмяМакета + "64";
Иначе
ИмяМакета = ИмяМакета + "32";
КонецЕсли;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
ДвоичныеДанные = ирПортативный.ПолучитьМакет(ИмяМакета);
Иначе
ДвоичныеДанные = Обработки.ирПортативный.ПолучитьМакет(ИмяМакета);
КонецЕсли;
АдресКомпоненты = ПолучитьИмяВременногоФайла("dll");
ДвоичныеДанные.Записать(АдресКомпоненты);
//АдресКомпоненты = "D:\VC\Native_Comp_RDT\binWin32\AddInNative.dll"; // Для отладки
Результат = ПодключитьВнешнююКомпоненту(АдресКомпоненты, "ирОбщая", ТипВнешнейКомпоненты.Native);
Если Не Результат Тогда
ВызватьИсключение "Не удалось подключить внешнюю компоненту Общая";
КонецЕсли;
ВК = Новый ("AddIn.ирОбщая.AddIn");
КонецПопытки;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = ВК;
КонецЕсли;
Возврат ВК;
КонецФункции
Функция КорневыеТипыСсылочныеЛкс() Экспорт
Результат = Новый Массив;
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
СтрокиМетаОбъектов = мПлатформа.ТаблицаТиповМетаОбъектов.НайтиСтроки(Новый Структура("Категория", 0));
Для Каждого СтрокаТаблицыМетаОбъектов Из СтрокиМетаОбъектов Цикл
Единственное = СтрокаТаблицыМетаОбъектов.Единственное;
Если ирОбщий.ЛиКорневойТипСсылочногоОбъектаБДЛкс(Единственное) Тогда
Результат.Добавить(СтрокаТаблицыМетаОбъектов);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ЭтоФоновоеЗаданиеЛкс() Экспорт
ТекущийСеанс = ирКэш.ТекущийСеансЛкс();
Если ТекущийСеанс = Неопределено Тогда
Результат = Ложь;
Иначе
Результат = ирОбщий.СтрокиРавныЛкс(ТекущийСеанс.ИмяПриложения, "BackgroundJob");
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ТекущийСеансЛкс() Экспорт
Сеансы = ПолучитьСеансыИнформационнойБазы();
НомерСеанса = НомерСеансаИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.НомерСеанса = НомерСеанса Тогда
Результат = Сеанс;
Прервать;
КонецЕсли;
КонецЦикла;
Если Результат = Неопределено Тогда
Сообщить("Собственный сеанс не найден");
КонецЕсли;
Возврат Результат;
КонецФункции
#КонецЕсли
Функция ТекущийПользовательОСЛкс() Экспорт
#Если ВебКлиент Тогда
ПользовательОС = "";
#Иначе
Network = Новый COMОбъект("WScript.Network");
ПользовательОС = Network.UserDomain + "\" + Network.UserName;
#КонецЕсли
Возврат ПользовательОС;
КонецФункции
Функция Это64битныйПроцессЛкс() Экспорт
СисИнфо = Новый СистемнаяИнформация;
Результат = СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64;
Возврат Результат;
КонецФункции
Функция ИмяКолонкиНомерСтрокиЛкс() Экспорт
ИмяКолонкиНомерСтроки = "НомерСтроки8793";
Возврат ИмяКолонкиНомерСтроки;
КонецФункции // ТабличноеПолеСВложеннымиКоллекциямиПриВыводеСтроки()
Функция ЭтоФайловаяБазаЛкс() Экспорт
ФайловыйКаталог = НСтр(СтрокаСоединенияИнформационнойБазы(), "File");
ЭтоФайловаяБаза = Не ПустаяСтрока(ФайловыйКаталог);
Возврат ЭтоФайловаяБаза;
КонецФункции // ЭтоФайловаяБазаИис()
Функция ПолучитьСтрокуСоединенияСервераЛкс() Экспорт
Результат = ирСервер.ПолучитьСтрокуСоединенияСервераЛкс();
Возврат Результат;
КонецФункции
Функция ПолучитьCOMОбъектWMIЛкс(Знач ИмяСервера = Неопределено, Знач ИмяСервераИсполнителя = Неопределено, Знач ТочкаПодключения = Неопределено) Экспорт
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции = ирПортативный.КэшФункцииЛкс("ПолучитьCOMОбъектWMIЛкс");
КлючНаборПараметров = "" + ИмяСервера + ";" + ИмяСервераИсполнителя + ";" + ТочкаПодключения;
Результат = КэшФункции[КлючНаборПараметров];
Если Результат <> Неопределено Тогда
Возврат Результат;
КонецЕсли;
КонецЕсли;
//http://msdn.microsoft.com/en-us/library/windows/desktop/aa389763(v=vs.85).aspx
Если Не ЗначениеЗаполнено(ИмяСервераИсполнителя) Тогда
Locator = Новый COMОбъект("WbemScripting.SWbemLocator");
Иначе
Locator = Новый COMОбъект("WbemScripting.SWbemLocator", ИмяСервераИсполнителя);
КонецЕсли;
Если Не ЗначениеЗаполнено(ИмяСервера) Тогда
ИмяСервера = ".";
КонецЕсли;
Если Не ЗначениеЗаполнено(ТочкаПодключения) Тогда
ТочкаПодключения = "root\cimv2";
КонецЕсли;
Попытка
Результат = Locator.ConnectServer(ИмяСервера, ТочкаПодключения, , , );
Исключение
Результат = Неопределено;
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
КэшФункции[КлючНаборПараметров] = Результат;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция АдресСайтаЛкс() Экспорт
Возврат "devtool1c.ucoz.ru";
КонецФункции

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Общий (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Общий (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Общий (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonModule uuid="a72577b8-211f-40be-bb34-05c6a3ffd205">
<Properties>
<Name>ирПортативный</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Портативный (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment>Заглушка для прохождения компиляции</Comment>
<Global>false</Global>
<ClientManagedApplication>true</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>true</ExternalConnection>
<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonModule uuid="4c09b85c-4566-4862-b8b9-0c21d939af9d">
<Properties>
<Name>ирПривилегированный</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Привилегированный</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>false</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ServerCall>true</ServerCall>
<Privileged>true</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>

View File

@ -0,0 +1,34 @@
//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
// Привилегированные процедуры и функции
// Находит все ссылки на массив ссылок.
//
// Параметры:
// пМассивСсылок Массив ссылок;
// пТаблицаРезультатов - ТаблицаЗначений - возвращаемая таблица с найденными ссылками.
//
Процедура НайтиПоСсылкамЛкс(пМассивСсылок, пТаблицаРезультатов) Экспорт
НайденныеСсылки = НайтиПоСсылкам(пМассивСсылок);
Для Сч = 0 По НайденныеСсылки.Колонки.Количество() - 1 Цикл
пТаблицаРезультатов.Колонки.Добавить(НайденныеСсылки.Колонки[Сч].Имя);
КонецЦикла;
Для Каждого Строка Из НайденныеСсылки Цикл
Если Ложь
Или Строка.Метаданные = Неопределено
Или Строка.Ссылка = Неопределено
Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = пТаблицаРезультатов.Добавить();
НоваяСтрока.Данные = ЗначениеВСтрокуВнутр(Строка.Данные);
НоваяСтрока.Метаданные = Строка.Метаданные.ПолноеИмя();
НоваяСтрока.Ссылка = Строка.Ссылка;
КонецЦикла;
КонецПроцедуры // ЛксНайтиПоСсылкам()

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Сервер (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Сервер (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Сервер (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>

File diff suppressed because it is too large Load Diff

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>ADO (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>ADO (ИР)</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>ADO (ИР)</v8:content>
</v8:item>
</Synonym>
<Comment/>
<AvailabilityForChoice>false</AvailabilityForChoice>

View File

Before

Width:  |  Height:  |  Size: 78 B

After

Width:  |  Height:  |  Size: 78 B

View File

@ -8,14 +8,6 @@
<v8:lang>ru</v8:lang>
<v8:content>Ир COM</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Ир COM</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Ир COM</v8:content>
</v8:item>
</Synonym>
<Comment/>
<AvailabilityForChoice>false</AvailabilityForChoice>

Some files were not shown because too many files have changed in this diff Show More