Compare commits

...

390 Commits

Author SHA1 Message Date
Администратор
63f2f29257 Адаптер Турбоконф (интерфейс) 2
1007723 	Bug 	Исправлена внесенная недавно ошибка при вызове автодополнения в конфигурации с режимом совместимости 8.2.* 	Действия
	1007709 	Bug 	Исправлена ошибка открытия ссылки на объект метаданных из имени таблицы БД в текстом литерале на языке запросов 	Действия
  Анализ прав доступа 1
	1007714 	Task 	Добавлено доступное дочернее поле "Пользователь. Есть аутентификация" 	Действия
  Динамический список 1
	1007711 	Bug 	Исправлена ошибка открытия обычной формы списка при отключенном перехвате клавиатурного ввода в обычном приложении 	Действия
  Исследователь объектов 1
	1007719 	Task 	В исследователе коллекции добавлена кнопка "Удалить" и восстановлена доступность редактирования ячеек 	Действия
  Поле текста программы 7
	1007720 	Task 	Анализатор кода теперь рассчитывает ожидаемый тип в параметре конструктора структуры внутри вызова метода 	Действия
	1007708 	Task 	В анализаторе кода значительно ускорено заполнение списка слов контекста огромного метода 	Действия
	1007702 	Task 	В области описания текущего слова автодополнения улучшены переходы по гиперссылкам типов 	Действия
	1007718 	Task 	В описании текущего слова списка автодополнения сделано отображение имени связанного ключа для параметра значения в конструкторе структуры 	Действия
	1007722 	Task 	Операция обновления кэша модулей теперь запоминает пометки расширений конфигурации для выгрузки 	Действия
	1007710 	Task 	Теперь в описании текущего слова списка автодополнения раздел доступности по молодым версиям платформы окрашивается красным 	Действия
	1007721 	Bug 	В команде "Проверить модуль" устранен вывод ложного сообщения при обращении к неизвестной форме полученной через Объект.ПолучитьФорму() 	Действия
  Редактор изменений на узлах 1
	1007696 	Bug 	Исправлена ошибка подсчета числа изменений при наличии табличной части "Изменения" в не включенного в планы обмена таблицы БД 	Действия
  Редактор пользователей 1
	1007717 	Task 	Добавлены признаки всех видов аутентификации и агрегатный признак "Есть аутентификация" 	Действия
  Функции режима отладки 1
	1007716 	Task 	При открытии снимков объектов функции От() теперь открывается спец. редактор для табличного документа, таблицы и дерева значений 	Действия
  Чат ИИ 1
	1007713 	Bug 	Исправлены ошибки отправки запросов к ИИ 1С:Напарник в связи к сильным изменением протокола передачи ответа
2025-12-14 17:51:54 +03:00
Администратор
79ca2dd91f Задачи подсистемы 3
1007681 	Task 	В шапке формы добавлена дата актуальности снимка задач 	Действия
	1007659 	Bug 	Исправлена некритичная ошибка открытия инструмента с параметрами в вариантах поставки "Расширение" и "Портативный" 	Действия
	1007676 	Bug 	Исправлена ошибка при очистке поля фильтра 	Действия
  История Гита 3
	1007668 	Bug 	Исправлена плавающая ошибка и подвисание загрузки списка коммитов с большими комментариями 	Действия
	1007678 	Bug 	Исправлена поле фильтра "Файл" для списка файлов коммита 	Действия
	1007680 	Bug 	Устранено внесенное в 8.02 зависание при загрузке большого коммита 	Действия
  Поле текста программы 7
	1007660 	Task 	В области описания текущего слова автодополнения теперь отображаются гиперссылки для имен типов 	Действия
	1007687 	Task 	Расширена поддержка наборов типов ЛюбаяСсылка, СправочникСсылка, ДокументСсылка, ПеречислениеСсылка 	Действия
	1007691 	Task 	Сделал опционально расчет позиции каретки в поле текстового документа через UIAutomation для совместимости с платформой 8.5 	Действия
	1007690 	Task 	Слово-генератор <СоздатьПеременную> в списке автодополнения теперь предлагается для всех выделенных выражений 	Действия
	1007669 	Bug 	Восстановлены частично сломанные в 7.94 стили HTML редактора 	Действия
	1007686 	Bug 	Исправлена команда "Объявить тип выражения" при вызове на имени переменной в строке ее создания с присвоением 	Действия
	1007663 	Bug 	Устранена вставка из списка автодополнения статуса слова ИИ 	Действия
  Прочее 2
	1007665 	Task 	Все пакетные команды конфигуратора теперь выполняются с передачей общих параметров командной строки текущего сеанса 	Действия
	1007656 	Bug 	Изменен внутренний идентификатор общей картинки "ирТабличноеПоле" для устранения конфликтов применения расширения в некоторых конфигурациях 	Действия
  Редактор объекта БД 1
	1007677 	Bug 	Восстановлено назначение картинки строкам независимых регистров сведений в ссылках на объект 	Действия
  Структура формы 1
	1007673 	Bug 	Исправлена ошибка в случае наличия в форме дублей элемент элементов (ошибка платформы)
2025-12-07 19:42:15 +03:00
Администратор
45fc40291a Адаптер Турбоконф (интерфейс) 3
1007638 	Bug 	Исправлен сломанный в последних версиях переход к объекту метаданных через "см. Обработка.ирПлатформа.Форма.РазбивкаТекста" 	Действия
	1007646 	Bug 	Исправлена ошибка вызове отладки запроса из модуля расширения 	Действия
	1007644 	Bug 	Устранен неоправданный вывод уведомления "Анализатор кода не может создать кэш формы из ее расширения" 	Действия
  Базы пользователя ОС 1
	1007642 	Bug 	Устранена очистка всех особых параметров запуска при отмене выбора набора параметров 	Действия
  Задачи подсистемы 1
	1007624 	Task 	Добавлена форма "Задачи подсистемы" для локальной работы с полным списком задач подсистемы 	Действия
  История Гита 2
	1007639 	Task 	Последние выбранные ветки теперь запоминаются в разрезе папки репозитория 	Действия
	1007658 	Bug 	В команде "Сравнить версии файла..." для нового файла в качестве предыдущей версии теперь подставляется пустой текст 	Действия
  Общее 1
	1007648 	Bug 	Исправлено аварийное завершение при клике в некоторых колонках с флажками на платформе 8.2 в режиме совместимости 8.1 	Действия
  Подготовка к изменению структуры БД 1
	1007643 	Bug 	Исправлен анализ переименований измерений регистров 	Действия
  Поиск дублей и замена ссылок 1
	1007645 	Bug 	Исправлена ошибка поиска дублей при сравнении по характеристикам 	Действия
  Поле текста программы 6
	1007622 	Task 	В описание текущего слова автодополнения добавлено краткое описание параметра-приемника 	Действия
	1007654 	Task 	Если ИИ предлагает чистое известное анализатору слово то теперь панель описания слова отображает этого слова 	Действия
	1007649 	Task 	Повышена скорость и улучшена логика работы команды "Перейти в начало родителя" 	Действия
	1007655 	Bug 	Исправлено заполнение списка автодополнения при вводе имени колонки в методе ДеревоЗначений.Колонки.Удалить() 	Действия
	1007634 	Bug 	Устранено добавление в список команды "Перейти к определению" формы на вызове функции, возвращающей ее реквизит произвольного типа 	Действия
	1007637 	Bug 	Устранено ошибочное обнаружение переменных с именами использованных в конструкторе "Новый" типов 	Действия
  Прочее 2
	1007657 	Task 	Оптимизирована функция сериализации таблицы значений в JSON 	Действия
	1007656 	Bug 	Изменен внутренний идентификатор общей картинки "ирТабличноеПоле" для устранения конфликтов применения расширения в некоторых конфигурациях 	Действия
  Структура формы 1
	1007653 	Bug 	Устранено добавление в заголовок неосновных форм текущего времени в режиме "Структура всех инструментов"
2025-11-30 17:55:18 +03:00
Администратор
2579ca3642 // Версия 882
Адаптер Турбоконф (интерфейс) 1
	1007619 	Bug 	Исправлен иногда некорректный расчет анализатором кода вызовов из расширения модуля в общие модули 	Действия
  История Гита 1
	1007618 	Bug 	Исправлены недочеты в отборе коммитов при полю "Что искать" 	Действия
  Консоль запросов 1
	1007609 	Bug 	Восстановлено запоминание сверток панелей при закрытии формы 	Действия
  Конструктор запроса 1
	1007605 	Task 	Команда "Заполнить настройки компоновки" разделена в подменю из двух команд "Очистить настройки" и "Заполнить настройки" 	Действия
  Поле текста программы 3
	1007598 	Task 	Теперь автодополнение в языке запросов предлагает имена новых параметров после "&" в правой части сравнения 	Действия
	1007610 	Bug 	Восстановлено заполнение списка автодополнения встроенными функциями и функциями модулей языка выражений компоновки данных 	Действия
	1007603 	Bug 	Устранен захват в структуре модуля первым методом инструкции препроцессора с предшествующим комментарием 	Действия
  Различные значения колонки 1
	1007611 	Bug 	Исправлена ошибка открытия из динамического списка в клиент-серверной базе 	Действия
  Чат ИИ 2
	1007620 	Bug 	Исправлены недочеты раскраски блоков кода 1С в ответах ИИ 	Действия
	1007616 	Bug 	Улучшена обработка ошибок соединения с Напарником
2025-11-26 22:53:38 +03:00
Администратор
631359a351 Адаптер Турбоконф (интерфейс) 1
1007619 	Bug 	Исправлен иногда некорректный расчет анализатором кода вызовов из расширения модуля в общие модули 	Действия
  История Гита 1
	1007618 	Bug 	Исправлены недочеты в отборе коммитов при полю "Что искать" 	Действия
  Консоль запросов 1
	1007609 	Bug 	Восстановлено запоминание сверток панелей при закрытии формы 	Действия
  Конструктор запроса 1
	1007605 	Task 	Команда "Заполнить настройки компоновки" разделена в подменю из двух команд "Очистить настройки" и "Заполнить настройки" 	Действия
  Поле текста программы 3
	1007598 	Task 	Теперь автодополнение в языке запросов предлагает имена новых параметров после "&" в правой части сравнения 	Действия
	1007610 	Bug 	Восстановлено заполнение списка автодополнения встроенными функциями и функциями модулей языка выражений компоновки данных 	Действия
	1007603 	Bug 	Устранен захват в структуре модуля первым методом инструкции препроцессора с предшествующим комментарием 	Действия
  Различные значения колонки 1
	1007611 	Bug 	Исправлена ошибка открытия из динамического списка в клиент-серверной базе 	Действия
  Чат ИИ 2
	1007620 	Bug 	Исправлены недочеты раскраски блоков кода 1С в ответах ИИ 	Действия
	1007616 	Bug 	Улучшена обработка ошибок соединения с Напарником
2025-11-23 20:59:39 +03:00
Администратор
c549e705f5 Консоль запросов 1
1007591 	Bug 	Исправлен вывод результата запроса в страницу "Обзор результатов" 	Действия
  Поле текста программы 1
	1007597 	Bug 	Исправлена внесенная в 8.01 ошибка активации строки ИИ в списке автодополнения на платформах 8.3.25-
2025-11-18 19:22:18 +03:00
Администратор
cfec2d001b Адаптер Турбоконф (интерфейс) 4
1007553 	Task 	Сделан расчет соответствия полного имени макета к файлу Гита 	Действия
	1007577 	Bug 	Исправлен расчет типа при активации строки функции конфигурации в списке подсказки в модуле расширения 	Действия
	1007586 	Bug 	Исправлено некорректное формирование имени виртуального модуля при отправке запроса Напарнику из модуля внешней обработки 	Действия
	1007583 	Bug 	Исправлено открытие ссылок форм и их элементов из расширений конфигурации в конфигураторе 	Действия
  Консоль заданий 1
	1007584 	Task 	В списке регламентных заданий добавлен индикатор обращений к внешним ресурсам БСП и возможность обходить блокировку таких обращений 	Действия
  Консоль запросов 1
	1007552 	Bug 	Исправлена ошибка при нажатии CTRL+D при активном HTML редакторе текста запроса 	Действия
  Поле текста программы 8
	1007563 	Task 	Двойной клик по встроенной ошибке проверки текста запроса теперь активирует строку, содержащую ошибочное выражение 	Действия
	1007558 	Task 	Сделана внутренняя подсказка Напарнику имен доступных свойств структуры при вводе ключа текстовым литералом 	Действия
	1007585 	Task 	Улучшено описание текущего слова списка автодополнения 	Действия
	1007189 	Bug 	Исправлено вычисление типа счетчика цикла "Для Счетчик=1 По 2 Цикл" 	Действия
	1007065 	Bug 	Исправлено некорректное форматирование текста встроенного языка в некоторых случаях 	Действия
	1007569 	Bug 	Устранено неоправданное подавление автодополнения ИИ в текстовом литерале в некоторых случаях 	Действия
	1007559 	Bug 	Устранено ошибочное назначение типа "ВременнаяТаблица" выбранному полю анализатором кода в языке запросов 	Действия
	1007554 	Bug 	Устранены избыточные цифровые окончания имен COM классов в списке автодополнения конструктора COM объекта 	Действия
  Сравнение текстов 2
	1007568 	Task 	Добавлена команда "Сформировать модуль расширения конфигурации" 	Действия
	1007570 	Bug 	Исправлены недочеты в работе кнопки ручной установки текста 	Действия
  Чат ИИ 1
	1007560 	Bug 	Исправлена ошибка разбора конца потокового ответа от некоторых моделей openrouter.ai
2025-11-16 18:36:22 +03:00
Администратор
b5c9b00c1a // Версия 878
Загрузка табличных данных 1
	1007528 	Bug 	Исправлен некорректный поиск по коду/наименованию/номеру при конвертации в ссылочное значение с вариантом встроенного языка Английский 	Действия
  Из адаптера Турбоконф 1
	1007483 	Task 	Теперь при первом вызове вызове анализатора кода в модуле расширения формы будет выводиться уведомление об отсутствии кэша формы 	Действия
  Консоль запросов 1
	1007512 	Task 	Добавлено подменю "ИИ" с командой "Обсудить ИИ" 	Действия
  Конструктор метода 1
	1007510 	Bug 	Исправлена ошибка открытия инструмента для метода с английскими ключевыми словами 	Действия
  Общее 1
	1007499 	Task 	Обновлены мультиязычные тексты интерфейса пользователя на нерусских языках 	Действия
  Поле текста программы 10
	1007520 	Task 	В контекст запроса к Напарнику теперь добавляются мета свойства объектов из предыдущей строки 	Действия
	1007519 	Task 	В окне настроек для модели ИИ добавлена кнопка "Параметры" 	Действия
	1007487 	Task 	В описании текущего слова автодополнения теперь для параметра-приемника указывается направление Вых/Знач 	Действия
	1007504 	Task 	В список автодополнения в языке запросов теперь добавляются частичные условия соединения 	Действия
	1007500 	Task 	В список автодополнения теперь добавляются инструкции проверки существования и добавления элемента коллекции после его поиска 	Действия
	1007518 	Task 	Добавлена команда "Вставить со сравнением" 	Действия
	1007526 	Task 	Окно отправки метаданных Напарнику теперь отправляет справочники и документы 	Действия
	1007523 	Bug 	Конструкции "ВЫБОР КОГДА" и "ЕСТЬ NULL" возвращены в список автодополнения языка выражений компоновки 	Действия
	1007493 	Bug 	Устранено в языке запросов при вводе псевдонима добавление в список автодополнения ключевых слов из выражения 	Действия
	1007509 	Bug 	Устранено удаление управляющих для шаблонов текста конструкций при выполнении слова-генератора <СоздатьПеременную> 	Действия
  Чат ИИ 2
	1007524 	Task 	Добавлена кнопка "Сырой ответ" 	Действия
	1007511 	Bug 	Исправлена ошибка подготовки контекста запроса в некоторых случаях
2025-11-06 20:48:08 +03:00
Администратор
1c3f286bda // Версия 875
Анализ журнала регистрации 1
	1007466 	Task 	Двойной клик по ссылке в колонке "Данные" теперь открывает форму объекта по ссылке
  Из адаптера Турбоконф 2
	1007469 	Bug 	Восстановлено сломанное в 7.96 вычисление свойств COM объектов
	1007465 	Bug 	Исправлена ошибка обработки ответа Напарника в модуле регистра
  Консоль кода 1
	1007456 	Task 	При загрузке текста в поле редактора теперь в конец добавляется до 10 пустых строк
  Подписки на события 1
	1007463 	Task 	Добавлено поле "Расширение" с именем расширения конфигурации, которое содержит подписку
  Поле текста программы 12
	1007472 	Task 	Автодополнение в строке ИначеЕсли теперь добавляет подходящую копию предыдущего условия
	1007475 	Task 	Автодополнение в строке логического выражения теперь добавляет подходящую копию предыдущей строки
	1007454 	Task 	В анализаторе кода исправлено неоптимальное получение предопределенных элементов объектов метаданных
	1007477 	Task 	В команде "Перейти к определению" исправлен переход к присвоению многострочного выражения во встроенном языке
	1007457 	Task 	В списке автодополнения для предопределенных элементов теперь выводится их код
	1007471 	Task 	Вставка вызова .Найти() внутри логического выражения теперь добавляет сравнение из предыдущего похожего выражения
	1007445 	Task 	Добавлена фоновая отправка метаданных всех общих модулей в сервис 1С:Напарник
	1007476 	Task 	При вставке строки предложения ИИ из списка автодополнения теперь сразу вставляются парные программные скобки
	1007453 	Task 	Сделан нечеткий подбор имени типа при вводе после точки
	1007473 	Task 	Теперь в список автодополнения добавляется первое полное объектное выражение предыдущей строки
	1007461 	Task 	Улучшена автоподстановка параметров после вставки имени метода из автодополнения
	1007468 	Bug 	Исправлена обработка оператора "Возврат" с/без параметра в режиме "Алгоритм" и "Модуль"
  Редактор пользователей 1
	1007458 	Task 	Флажок "Временно добавить роль Разработчик ИР" в окне "Запуск под пользователем" теперь еще добавляет роль ЗапускТолстогоКлиента
  Чат ИИ 1
	1007460 	Task 	Сделана поддержка потокового ответа ИИ по стандарту OPEN AI
2025-10-29 19:33:51 +03:00
Администратор
3bd64b8211 . 2025-10-26 19:00:52 +03:00
Администратор
1d3d2e831a Базы пользователя ОС 1
1007325 	Task 	Добавлены команды "Создать резервную копию" и "Загрузить из файла" в подменю "Прочее" и автосоздание резервной копии списка
  Из адаптера Турбоконф 1
	1007440 	Bug 	В открытом окне подсказки по вызову метода исправлено обновление после смены метода
  История Гита 1
	1007444 	Task 	Добавлены проверки пути к репозиторию
  Консоль запросов 1
	1007442 	Task 	При активации строки структуры запроса поиск связанной строки результата пакета теперь делается сначала по имени
  Конструктор запроса 1
	1007434 	Bug 	Исправлена ошибка разбора текстов запросов с виртуальными таблицами среза первых/последних на платформе 8.2
  Общее 2
	1007441 	Bug 	Исправлена внесенная в 7.97 ошибка при открытии форм с фоновыми запросами к ИИ на платформе 8.3.13-
	1007436 	Bug 	Исправлены внесенные в 7.97 ошибки нового механизма фоновых HTTP запросов на платформах 8.3.25-
  Поле текста программы 9
	1007428 	Task 	В окне "Возможные ошибки модуля" добавлен фильтра по подсистемам для проверки всех модулей
	1007414 	Task 	Добавлено подменю "Навигация"
	1007421 	Task 	Добавлены типизирующие комментарии для обозначения ПостроительЗапроса по таблице БД
	1007438 	Task 	Команда "Советовать ИИ" переименована в "Обсудить ИИ"
	1007418 	Task 	Сделана отправка Напарнику базовой информации о структуре вовлеченных управляемых форм
	1007429 	Bug 	В методе СловаКонтекстаПредопределенные "Перейти к родителю" работает иногда некорректно
	1007437 	Bug 	В окне автодополнения теперь обрабатываются ошибки отправки запуска запросов ИИ
	1007424 	Bug 	Восстановлена видимость методов модулей расширений конфигурации в динамических модулях
	1007430 	Bug 	Исправлена некорректная вставка из списка автодополнения слова-генератора <УдалитьИзКоллекции>
  Прочее 1
	1007420 	Task 	При открытии первой формы инструментов теперь проверяется версия платформы
  Различные значения колонки 1
	1007435 	Bug 	Исправлена ошибка открытия на платформе 8.2
  Структура формы 1 Свернуть все/Развернуть все
	1007431 	Bug 	Исправлена ошибка открытия из обычной формы
  Установщик расширения ИР 1
	1007432 	Bug 	Исправлена проверка на то что платформа является учебной в английском интерфейсе системы (/Len)
  Чат ИИ 1
	1007439 	Task 	Добавлены поля "Код" и "Запрос", оформление блоков кода 1С в ответах, флажки передачи контекста, кнопки "Сравнить" и "Применить"
2025-10-22 19:31:27 +03:00
Администратор
070e28ca21 // Версия 870
История Гита 1
	1007388 	Task 	Теперь при пустом поле отбора по ветке будут выводиться коммиты всех веток 	Действия
  Консоль запросов 2
	1007376 	Task 	Теперь при попытке ввода текста в заблокированный узел ведущей структуры запроса будет выводиться сообщение 	Действия
	1007398 	Bug 	Отключено выполнение узлов дерева запроса при включенном флажке "Заменять представления ЗУП" 	Действия
  Конструктор запроса 1
	1007394 	Bug 	Исправлены доступные поля в редакторе выражения параметров виртуальной таблицы регистра бухгалтерии 	Действия
  Конструктор метода 1
	1007397 	Task 	Добавлено больше фильтраций результата Напарника чтобы отбросить явный мусор 	Действия
  Общее 3
	1007401 	Task 	Все запросы к ИИ теперь делаются на клиенте фоново с поддержкой потокового режима (stream API) 	Действия
	1007403 	Task 	Добавлена возможность использования Напарника в качестве универсального ИИ 	Действия
	1007406 	Bug 	Сделана обработка некорректных ответов ИИ 	Действия
  Поле текста программы 10
	1007404 	Task 	В подменю "Рефакторинг" добавлена команда "Советовать ИИ" для выделенного фрагмента 	Действия
	1007405 	Task 	Для общения с ИИ добавлена форма "Чат ИИ" 	Действия
	1007372 	Task 	Напарник подключен в языке запросов 	Действия
	1007383 	Task 	Напарник теперь обновляет свое предложение при продолжении ввода слова после открытия списка автодополнения 	Действия
	1007387 	Task 	Отключена базовая проверка предложения Напарника по рассчитанному списку слов в английском варианте встроенного языка 	Действия
	1007373 	Task 	Слово-генератор <СопоставитьСвойства> теперь пропускает несопоставленные свойства 	Действия
	1007396 	Task 	Ускорено отображение первой строки предложения Напарника 	Действия
	1007382 	Bug 	Исправлена некорректная работа слова-генератора <СопоставитьСвойства> 	Действия
	1007391 	Bug 	Исправлена ошибка кнопки "Применить" окна настроек компоненты с пустым ключом Напарника и недоступным сервером Напарника 	Действия
	1007381 	Bug 	Исправлена ошибка команды "Найти в модулях" для в режимах "Ссылки"+"Свойство" 	Действия
  Структура формы 1
Свернуть все/Развернуть все
	1007374 	Bug 	Исправлена внесенная в 7.96 ошибка открытия инструмента
2025-10-13 22:23:28 +03:00
Администратор
201aeb190a История Гита 1
1007388 	Task 	Теперь при пустом поле отбора по ветке будут выводиться коммиты всех веток 	Действия
  Консоль запросов 2
	1007376 	Task 	Теперь при попытке ввода текста в заблокированный узел ведущей структуры запроса будет выводиться сообщение 	Действия
	1007398 	Bug 	Отключено выполнение узлов дерева запроса при включенном флажке "Заменять представления ЗУП" 	Действия
  Конструктор запроса 1
	1007394 	Bug 	Исправлены доступные поля в редакторе выражения параметров виртуальной таблицы регистра бухгалтерии 	Действия
  Конструктор метода 1
	1007397 	Task 	Добавлено больше фильтраций результата Напарника чтобы отбросить явный мусор 	Действия
  Общее 3
	1007401 	Task 	Все запросы к ИИ теперь делаются на клиенте фоново с поддержкой потокового режима (stream API) 	Действия
	1007403 	Task 	Добавлена возможность использования Напарника в качестве универсального ИИ 	Действия
	1007406 	Bug 	Сделана обработка некорректных ответов ИИ 	Действия
  Поле текста программы 10
	1007404 	Task 	В подменю "Рефакторинг" добавлена команда "Советовать ИИ" для выделенного фрагмента 	Действия
	1007405 	Task 	Для общения с ИИ добавлена форма "Чат ИИ" 	Действия
	1007372 	Task 	Напарник подключен в языке запросов 	Действия
	1007383 	Task 	Напарник теперь обновляет свое предложение при продолжении ввода слова после открытия списка автодополнения 	Действия
	1007387 	Task 	Отключена базовая проверка предложения Напарника по рассчитанному списку слов в английском варианте встроенного языка 	Действия
	1007373 	Task 	Слово-генератор <СопоставитьСвойства> теперь пропускает несопоставленные свойства 	Действия
	1007396 	Task 	Ускорено отображение первой строки предложения Напарника 	Действия
	1007382 	Bug 	Исправлена некорректная работа слова-генератора <СопоставитьСвойства> 	Действия
	1007391 	Bug 	Исправлена ошибка кнопки "Применить" окна настроек компоненты с пустым ключом Напарника и недоступным сервером Напарника 	Действия
	1007381 	Bug 	Исправлена ошибка команды "Найти в модулях" для в режимах "Ссылки"+"Свойство" 	Действия
  Структура формы 1
Свернуть все/Развернуть все
	1007374 	Bug 	Исправлена внесенная в 7.96 ошибка открытия инструмента
2025-10-12 20:56:18 +03:00
Администратор
125308346c // Версия 868
// Версия 867
  Адаптер для Турбоконф 2
	1007346 	Task 	Добавлена функция ирОбщий.ЛиВнутриCOMСервераЛкс для проверки что сеанс запущен в режиме COM (OLE) 	Действия
	1007330 	Bug 	Исправлена локальная видимость методов модуля добавленного в конфигураторе и отсутствующего в метаданных объекта 	Действия
  История Гита 2
	1007313 	Bug 	В окне "Обновление из EDT" кнопка "Подготовить" теперь игнорирует файлы в папке src/Configuration 	Действия
	1007308 	Bug 	Исправлена сломанная в 7.94 генерация ссылки на строку модуля 	Действия
  Конструктор регулярного выражения 1
	1007345 	Task 	Область развернутого выражения теперь отображается только если выражение ссылается на параметры 	Действия
  Общее 1
	1007303 	Bug 	Исправлен внесенный в 7.93 откат глобальных настроек к предыдущему состоянию иногда при работе одновременно в нескольких базах 	Действия
  Поле текста программы 5
	1007332 	Task 	Для Напарника ускорена реакция и сделана отправка описания вовлеченных модулей, объектов метаданных и динамических свойств после текущей точки 	Действия
	1007343 	Task 	Улучшен нечеткий подбор лучшего слова в списке автодополнения 	Действия
	1007309 	Bug 	В анализаторе кода исправлено вычисление вложенных конструкторов в первой строке тела метода 	Действия
	1007302 	Bug 	Исправлена видимость Напарником соседних методов модуля 	Действия
	1007342 	Bug 	Исправлено вычисление типа значения выражения начинающегося с логического оператора "Не" 	Действия
  Прочее 1
	1007322 	Bug 	В окне "Выбор типов или значения" исправлена сломанная из-за изменения сервиса sinonim.org кнопка "Авто" рядом с полем фильтра 	Действия
  Редактор констант 1
	1007321 	Bug 	Исправлена ошибка записи в варианте встроенного языка "Английский" 	Действия
  Редактор объекта БД 2
	1007344 	Task 	Двойной клик в ячейках остатков теперь открывает редактор остатков регистра 	Действия
	1007323 	Bug 	Исправлена работа кнопок "Отбор по/без значению" для табличных частей и наборов движений 	Действия
  Функции режима отладки 1
	1007315 	Bug 	Уменьшена вероятность 20 секундных подвисаний в соседних сеансах файловой базы после вызова функций отладки в транзакции
2025-10-07 07:35:31 +03:00
Администратор
8625cf5191 . 2025-09-29 21:23:34 +03:00
Администратор
69e03f9c05 . 2025-09-24 09:58:01 +03:00
Администратор
192a47d271 . 2025-09-21 21:34:51 +03:00
Администратор
773162b59e . 2025-09-17 11:49:35 +03:00
Администратор
bdde37fa82 . 2025-09-15 10:31:22 +03:00
Администратор
65045b141f . 2025-09-10 08:13:13 +03:00
Администратор
31a5f8dd6f . 2025-09-07 21:28:16 +03:00
Администратор
4be8af1c34 . 2025-09-04 22:23:26 +03:00
Администратор
689f2fc139 . 2025-08-31 22:29:10 +03:00
Администратор
e8d9a756ca . 2025-08-24 20:10:04 +03:00
Администратор
578d1ab870 . 2025-08-19 00:22:38 +03:00
Администратор
3504dea3db . 2025-08-17 20:32:38 +03:00
Администратор
d9c5f7e968 . 2025-08-10 20:54:29 +03:00
Администратор
3eb51dd5c5 Revert "."
This reverts commit fb0a6e254a.
2025-08-11 01:00:39 +03:00
Администратор
fb0a6e254a . 2025-08-10 20:54:29 +03:00
Администратор
f181498eda . 2025-08-03 19:59:37 +03:00
Администратор
87530b6b52 . 2025-07-27 23:03:11 +03:00
Администратор
6e82ac816b . 2025-07-20 18:36:59 +03:00
Администратор
5ab46206ff . 2025-07-07 07:37:46 +03:00
Администратор
71e64d89c3 . 2025-07-06 16:55:25 +03:00
Администратор
22d95bcb79 . 2025-06-29 08:28:50 +03:00
Администратор
b811031fa6 . 2025-06-27 09:30:28 +03:00
Администратор
814468519f . 2025-06-11 07:27:12 +03:00
Администратор
a796c44faf . 2025-06-01 19:11:00 +03:00
Администратор
5f0cf232b6 . 2025-05-24 14:52:05 +03:00
Администратор
cb8d4136a9 . 2025-05-21 06:54:18 +03:00
Администратор
db80c2feec . 2025-05-18 19:23:43 +03:00
Администратор
46794e7f3d . 2025-05-12 00:24:21 +03:00
Администратор
9eb667a3e0 . 2025-05-04 20:59:26 +03:00
Администратор
2138fddf67 . 2025-04-28 18:42:10 +03:00
Администратор
b3a40a7a27 . 2025-04-20 19:18:15 +03:00
Администратор
e1423dc415 . 2025-04-13 20:32:18 +03:00
Администратор
0a7de11668 . 2025-04-07 22:32:22 +03:00
Администратор
a22fc152fb . 2025-04-01 22:39:33 +03:00
Администратор
31533a9b62 . 2025-03-31 00:13:03 +03:00
Администратор
37125f1065 . 2025-03-23 20:26:22 +03:00
Администратор
d6a04d522b . 2025-03-16 19:45:07 +03:00
Администратор
b190dc919d . 2025-03-11 23:38:45 +03:00
Администратор
a20333d794 . 2025-03-10 00:59:31 +03:00
Администратор
9f4583a4da . 2025-03-09 20:27:55 +03:00
Администратор
4979a0f3ae . 2025-03-03 23:22:27 +03:00
Администратор
28ed541ff5 . 2025-02-23 20:16:52 +03:00
Администратор
da8f0951e1 . 2025-02-16 19:10:11 +03:00
Администратор
3895d06c0b . 2025-02-11 07:49:04 +03:00
Администратор
317aa66a61 . 2025-02-03 22:01:47 +03:00
Администратор
32ad86be77 . 2025-01-28 19:50:24 +03:00
Администратор
620686edc6 . 2025-01-19 18:40:43 +03:00
Администратор
32f0ca7b68 . 2025-01-12 19:08:48 +03:00
Администратор
a584b9460b . 2025-01-08 23:24:00 +03:00
Администратор
abd1d6a211 . 2025-01-05 22:46:53 +03:00
Администратор
7ddddf2852 . 2025-01-05 22:44:45 +03:00
Администратор
83d069627c . 2024-12-30 20:16:20 +03:00
Администратор
94a6890876 . 2024-12-22 20:21:21 +03:00
Администратор
dc6b4c1e79 . 2024-12-15 19:41:20 +03:00
Администратор
436e2a335b . 2024-12-10 08:21:13 +03:00
Администратор
14528e3291 . 2024-12-05 08:27:16 +03:00
Администратор
a54011baa7 . 2024-12-03 08:24:27 +03:00
Администратор
a3cc839c81 . 2024-12-01 23:32:05 +03:00
Администратор
1e16f8a491 . 2024-11-24 17:31:16 +03:00
Администратор
b873a4e303 . 2024-11-17 19:08:49 +03:00
Администратор
57cae32f4b . 2024-11-10 20:43:03 +03:00
Администратор
3dc5714d74 . 2024-11-10 20:24:47 +03:00
Администратор
d4683f4e22 . 2024-11-04 18:22:41 +03:00
Администратор
1899274752 . 2024-11-04 18:05:28 +03:00
Администратор
ff1bbf108a . 2024-11-04 17:44:40 +03:00
Администратор
314730534b . 2024-10-27 23:05:08 +03:00
Администратор
986e67905a . 2024-10-20 20:34:01 +03:00
Администратор
4a36955554 . 2024-10-16 19:07:39 +03:00
Администратор
407b501a9d . 2024-10-13 19:38:54 +03:00
Администратор
f31adc995c . 2024-10-08 22:49:55 +03:00
Администратор
53ce282f26 . 2024-10-08 21:17:22 +03:00
Администратор
26ef8527e8 . 2024-10-06 19:14:10 +03:00
Администратор
30b69f3579 . 2024-09-29 18:19:30 +03:00
Администратор
420188c90d . 2024-09-25 22:45:20 +03:00
Администратор
90bd2be600 . 2024-09-22 20:47:15 +03:00
Администратор
b7e16fa9c7 . 2024-09-16 18:50:09 +03:00
Администратор
64fb1c8961 . 2024-09-15 18:26:47 +03:00
Администратор
055590597e . 2024-09-08 19:08:41 +03:00
Администратор
801f23d453 . 2024-09-01 23:57:40 +03:00
Администратор
b99c23c76d . 2024-08-25 20:03:16 +03:00
Администратор
2c06c4ba74 . 2024-08-18 17:56:39 +03:00
Администратор
adfb81ef7f . 2024-08-12 08:56:28 +03:00
Администратор
1e3ff35bec . 2024-08-11 22:04:24 +03:00
Администратор
f01d508915 . 2024-08-05 07:20:26 +03:00
Администратор
80eeaef21a . 2024-07-31 07:16:42 +03:00
Администратор
5b5fb92cc3 . 2024-07-28 21:20:53 +03:00
Администратор
e41d4c1b31 . 2024-07-21 20:05:38 +03:00
Администратор
435c4dba4f . 2024-07-21 19:41:27 +03:00
Администратор
49c42c67b6 . 2024-07-21 19:34:22 +03:00
Администратор
3993fb6275 . 2024-07-21 19:32:19 +03:00
Администратор
fda85a03da . 2024-07-09 09:06:17 +03:00
Администратор
30da76eaaf . 2024-07-03 07:36:25 +03:00
Администратор
e00729bd73 . 2024-07-03 07:36:25 +03:00
Администратор
4d8f2087bd . 2024-06-30 19:28:43 +03:00
Администратор
bd28f590ba . 2024-06-20 07:56:29 +03:00
Администратор
122854764f . 2024-06-13 07:21:30 +03:00
Администратор
c762e219ab . 2024-06-12 19:57:42 +03:00
Администратор
af6d563b41 . 2024-06-03 09:04:46 +03:00
Администратор
825277142c . 2024-06-02 23:46:44 +03:00
Администратор
92d8236be4 . 2024-05-26 21:56:08 +03:00
Администратор
57190c2cfe . 2024-05-22 08:01:17 +03:00
Администратор
e1c7a527cc . 2024-05-14 19:56:44 +03:00
Администратор
118c0259e6 . 2024-05-12 23:18:54 +03:00
Администратор
dca235fbca . 2024-05-06 19:35:37 +03:00
Администратор
c0e7868c5e . 2024-05-06 00:19:59 +03:00
Администратор
a6f635117a . 2024-05-02 08:48:05 +03:00
Администратор
67dc576c57 . 2024-04-23 08:12:19 +03:00
Администратор
f5cbcc2e23 . 2024-04-22 00:16:03 +03:00
Администратор
2fcb6c5763 . 2024-04-16 19:52:21 +03:00
Администратор
2548042809 . 2024-04-15 00:01:48 +03:00
Администратор
2104ec9b81 . 2024-04-08 08:36:49 +03:00
Администратор
3dc31232e0 . 2024-04-02 07:53:57 +03:00
Администратор
bf0fd85272 . 2024-03-24 23:34:33 +03:00
Администратор
7d03e70195 . 2024-03-20 00:34:21 +03:00
Администратор
9be432afc2 . 2024-03-12 09:20:27 +03:00
Администратор
adaeaabf68 . 2024-03-11 08:52:51 +03:00
Администратор
a34c4c856d . 2024-03-10 23:55:07 +03:00
Администратор
66919a63e6 . 2024-03-05 08:08:43 +03:00
Администратор
f2d7e9f95a . 2024-03-04 09:19:29 +03:00
Администратор
6080466485 . 2024-03-04 09:03:58 +03:00
Администратор
c2c755b44e . 2024-03-03 23:57:36 +03:00
Администратор
cf1a3bee5a . 2024-02-27 09:46:19 +03:00
Администратор
5210d1be90 . 2024-02-26 18:48:55 +03:00
Администратор
4d6bd2a54f . 2024-02-25 22:58:49 +03:00
Администратор
db2d43d6e9 . 2024-02-20 09:24:33 +03:00
Администратор
9ff8836118 . 2024-02-20 09:21:38 +03:00
Администратор
65f2af8d4f . 2024-02-19 00:47:53 +03:00
Администратор
3cd1023835 . 2024-02-19 00:45:29 +03:00
Администратор
daa395c2f6 . 2024-02-19 00:44:31 +03:00
Администратор
bff551c4d4 . 2024-02-13 11:19:05 +03:00
Администратор
fa9f3b5697 . 2024-02-12 00:41:40 +03:00
Администратор
3fd4841660 . 2024-02-08 16:23:12 +03:00
Администратор
d578c3e3ad . 2024-02-08 15:47:46 +03:00
Администратор
6297fbc048 . 2024-02-04 21:21:06 +03:00
Администратор
1ee9dcb1c0 . 2024-01-29 00:58:00 +03:00
Администратор
57baa7b7dc . 2024-01-29 00:38:50 +03:00
Администратор
fa59bf250f . 2024-01-28 23:28:42 +03:00
Администратор
b0526fb52f . 2024-01-24 09:09:03 +03:00
Администратор
26339f02c8 . 2024-01-21 22:46:44 +03:00
Администратор
1b3d455ce9 . 2024-01-21 21:19:51 +03:00
Администратор
a547e1b487 . 2024-01-16 00:22:41 +03:00
Администратор
c76ec261c2 . 2024-01-14 23:17:56 +03:00
Администратор
75b1460563 . 2024-01-07 18:36:49 +03:00
Администратор
7a8f2ba7fa . 2024-01-07 18:36:49 +03:00
Администратор
a662a5d10c . 2024-01-07 18:36:49 +03:00
Администратор
2106aade49 . 2024-01-06 19:59:43 +03:00
Администратор
588b98ff07 . 2024-01-03 23:54:11 +03:00
Администратор
cde61351a8 . 2023-12-28 17:43:53 +03:00
Администратор
7dc22b5440 . 2023-12-26 08:45:04 +03:00
Администратор
30b38a1d40 . 2023-12-25 11:50:03 +03:00
Администратор
da9135e4c9 . 2023-12-24 08:37:46 +03:00
Администратор
1f1a771d95 . 2023-12-10 23:03:38 +03:00
Администратор
37c321ce6b . 2023-12-07 09:54:41 +03:00
Администратор
db068cb7b2 . 2023-11-25 13:30:02 +03:00
Администратор
dbc71e8959 . 2023-11-18 12:56:47 +03:00
Администратор
a5b2458619 . 2023-11-12 13:13:15 +03:00
Администратор
18cffe8451 . 2023-11-06 17:06:06 +03:00
Администратор
56eed46f21 . 2023-10-29 11:43:05 +03:00
Администратор
42a4a198e1 . 2023-10-25 08:53:47 +03:00
Администратор
09fb761587 . 2023-10-18 09:03:05 +03:00
Администратор
9c8068446f . 2023-10-16 21:39:39 +03:00
Администратор
f86ebcfd20 . 2023-10-15 19:11:16 +03:00
Администратор
e6138a9c3d . 2023-10-08 20:31:33 +03:00
Администратор
e97067bf81 . 2023-10-01 22:32:27 +03:00
Администратор
b827161724 . 2023-10-01 19:59:06 +03:00
Администратор
e59184f886 . 2023-09-29 08:37:11 +03:00
Администратор
a2c5169eeb . 2023-09-25 19:21:39 +03:00
Администратор
74ef035eec . 2023-09-20 19:41:25 +03:00
Администратор
99a2a9a9f2 . 2023-09-18 00:15:57 +03:00
Администратор
c9e7ba74ad . 2023-09-10 16:19:31 +03:00
Администратор
85d85cc5c3 . 2023-09-03 22:37:21 +03:00
Администратор
9b8d8bdc88 . 2023-09-03 17:59:25 +03:00
Администратор
3953b7f8c5 . 2023-08-28 23:56:56 +03:00
Администратор
059bfd180b . 2023-08-21 08:45:34 +03:00
Администратор
8c1cda5fdf . 2023-08-15 23:34:29 +03:00
Администратор
d209491a0f . 2023-07-26 08:37:48 +03:00
Администратор
d4e2a600ff . 2023-07-16 19:52:47 +03:00
Администратор
6e3502634f . 2023-07-11 23:14:01 +03:00
Администратор
67cd01a57e . 2023-07-10 18:41:01 +03:00
Администратор
0d26140573 . 2023-07-09 17:11:50 +03:00
Администратор
45b877fd34 . 2023-07-02 23:52:20 +03:00
Администратор
35ede8d2a0 . 2023-06-26 07:59:05 +03:00
Администратор
55bd6a70df . 2023-06-25 23:54:55 +03:00
Администратор
bb21934098 . 2023-06-20 19:09:42 +03:00
Администратор
63b3c8964c . 2023-06-17 11:39:48 +03:00
Администратор
b4254249f9 . 2023-06-12 19:23:55 +03:00
Администратор
09a6894f5a . 2023-06-05 21:56:42 +03:00
Администратор
908f4c5e27 . 2023-06-04 21:58:29 +03:00
Администратор
7b7fe64005 . 2023-06-01 08:38:06 +03:00
Администратор
c5ac28b122 . 2023-05-28 21:35:01 +03:00
Администратор
5f64347870 . 2023-05-24 21:50:40 +03:00
Администратор
fa2383137e . 2023-05-21 23:05:18 +03:00
Администратор
60ca393ddf . 2023-05-14 14:15:45 +03:00
Администратор
f7005870ee . 2023-05-08 10:00:20 +03:00
Администратор
a8ea20d3e9 . 2023-05-01 21:41:32 +03:00
Администратор
d4bbdf2527 . 2023-04-23 22:40:42 +03:00
Администратор
b2bc7c17d0 . 2023-04-18 19:57:23 +03:00
Администратор
57866f59bd . 2023-04-16 21:33:50 +03:00
Администратор
6728cf247a . 2023-04-14 08:12:43 +03:00
Администратор
239af5e920 . 2023-04-05 08:12:33 +03:00
Администратор
de0bdeb71e . 2023-04-02 09:06:01 +03:00
Администратор
50170e1f49 . 2023-03-26 19:10:58 +03:00
Администратор
c030de3329 . 2023-03-21 09:12:05 +03:00
Администратор
78e20465f3 . 2023-03-18 11:15:18 +03:00
Администратор
88dfaec325 . 2023-03-11 11:33:33 +03:00
Администратор
5d09c44c62 . 2023-03-01 08:26:28 +03:00
Администратор
f19bd71245 . 2023-02-23 13:38:53 +03:00
Администратор
a6c146fbb0 . 2023-02-19 23:30:31 +03:00
Администратор
10b0dc6cb2 . 2023-02-19 21:23:05 +03:00
Администратор
567abd063b . 2023-02-18 11:05:02 +03:00
Администратор
1e56d1ed83 . 2023-02-11 17:15:58 +03:00
Администратор
9df4ec530c . 2023-02-07 20:17:23 +03:00
Администратор
4f420dd7db . 2023-02-07 20:06:59 +03:00
Администратор
6856e523bb . 2023-02-05 21:40:56 +03:00
Администратор
2754aa04f3 . 2023-02-01 19:51:31 +03:00
Администратор
9b904c00a9 . 2023-01-29 20:30:01 +03:00
Администратор
9c4bb4b193 . 2023-01-28 21:59:52 +03:00
Администратор
c24aad0038 . 2023-01-25 19:29:19 +03:00
Администратор
95acc53999 . 2023-01-22 22:08:38 +03:00
Администратор
357e42a48b . 2023-01-22 21:46:48 +03:00
Администратор
6a547ae5ea . 2023-01-15 23:16:11 +03:00
Администратор
5c494fa59d . 2023-01-15 18:20:16 +03:00
Администратор
45e5f4b90a . 2023-01-15 17:47:53 +03:00
Администратор
f5f47c81b6 . 2023-01-13 20:32:06 +03:00
Администратор
5c0f3e8b14 . 2023-01-10 19:46:21 +03:00
Администратор
6573f3775e . 2023-01-08 23:57:06 +03:00
Администратор
91abfef833 . 2023-01-08 23:25:37 +03:00
Администратор
faab1ec98d . 2023-01-08 23:25:02 +03:00
Администратор
5f7ef601bb . 2023-01-07 15:49:18 +03:00
Администратор
37866bd376 . 2023-01-07 01:14:08 +03:00
Администратор
62cf77b3eb . 2022-12-29 08:23:22 +03:00
Администратор
2457e9ca74 . 2022-12-25 19:14:08 +03:00
Администратор
c9c9d7a1bd . 2022-12-18 20:32:35 +03:00
Администратор
586adbc006 . 2022-12-11 19:51:11 +03:00
Администратор
76a22365ef . 2022-11-28 21:25:17 +03:00
Администратор
f741c25936 . 2022-11-20 18:07:23 +03:00
Администратор
a9ee477fa4 . 2022-11-13 21:11:48 +03:00
Администратор
c831379afe . 2022-11-11 08:42:27 +03:00
Администратор
3cd85b5df4 . 2022-11-06 18:25:22 +03:00
Администратор
1d9c59019e . 2022-10-30 18:09:15 +03:00
Администратор
450cc28c46 . 2022-10-22 07:59:07 +03:00
Администратор
8cdd35c06d . 2022-10-18 19:13:06 +03:00
Администратор
343a172195 . 2022-10-16 19:02:54 +03:00
Администратор
2fe0c4d4ef . 2022-10-09 19:19:10 +03:00
Администратор
d7e20b962d . 2022-10-02 20:45:18 +03:00
Администратор
ceb601b312 . 2022-09-25 20:36:21 +03:00
Администратор
6c711bb5fc . 2022-09-20 22:28:09 +03:00
Sergey Starykh
3b70c4966b
Update bug_report.md 2022-09-30 18:32:56 +03:00
Sergey Starykh
4625108459
Update bug_report.md
обновил шаблон заявки
2022-09-30 18:32:35 +03:00
Администратор
306d5ae324 . 2022-09-12 07:47:55 +03:00
Администратор
fcca06618c . 2022-09-12 00:19:28 +03:00
Администратор
42da279c06 . 2022-09-04 21:05:46 +03:00
Администратор
6dc6b15b0d . 2022-09-03 14:00:29 +03:00
Администратор
49044e4faf . 2022-08-29 23:03:09 +03:00
Администратор
43f5f53f59 . 2022-08-29 10:20:18 +03:00
Администратор
13e222ffd5 . 2022-08-25 20:08:57 +03:00
Администратор
3973c441a8 . 2022-08-22 07:20:47 +03:00
Администратор
0f747801ca . 2022-08-21 19:58:34 +03:00
Администратор
e8ba3230bb . 2022-08-14 22:08:07 +03:00
Администратор
4ed071af15 . 2022-08-07 22:17:11 +03:00
Администратор
ff151555c4 . 2022-07-31 22:06:27 +03:00
Администратор
ca9bdfb49d . 2022-07-25 00:04:48 +03:00
Администратор
803e9b1408 . 2022-07-17 23:23:56 +03:00
Администратор
fceb46620d . 2022-07-16 17:26:36 +03:00
Администратор
42e4cc7e4c . 2022-07-11 07:08:01 +03:00
Администратор
4ee600d2f7 . 2022-07-10 19:25:21 +03:00
Администратор
fc850a670a . 2022-07-08 22:45:50 +03:00
Администратор
cd805e4ea7 . 2022-07-07 07:40:17 +03:00
Администратор
161d9b038d . 2022-07-05 19:33:26 +03:00
Администратор
0e390e3eaf . 2022-07-04 00:50:32 +03:00
Администратор
015afca327 . 2022-06-27 00:30:40 +03:00
Администратор
9838d6d298 . 2022-06-26 23:04:04 +03:00
Администратор
41c1a5c436 . 2022-06-19 20:39:55 +03:00
Администратор
48110fb2c0 . 2022-06-18 11:38:36 +03:00
Администратор
0fa2719c4f . 2022-06-15 22:27:33 +03:00
Администратор
a8cf89cace . 2022-06-13 19:07:22 +03:00
Администратор
35b45794e3 . 2022-06-06 08:14:35 +03:00
Администратор
4439896158 . 2022-06-01 08:54:24 +03:00
Администратор
cd85f61bd9 . 2022-05-29 16:03:46 +03:00
Администратор
43332ad16f . 2022-05-10 09:20:30 +03:00
Администратор
3f045880b8 . 2022-04-30 20:27:15 +03:00
Администратор
b570e9f1c9 . 2022-04-10 17:04:00 +03:00
Администратор
f058921830 . 2022-03-27 23:32:17 +03:00
tormozit
4299b0478b Merge remote-tracking branch 'origin/master' 2022-06-25 16:39:16 +03:00
tormozit
5b548f27d4 Update VERSION 2022-06-25 16:36:56 +03:00
Sergey Starykh
3dc701748d
Update bug_report.md 2022-04-28 19:36:42 +03:00
Sergey Starykh
0f3fdf72a5
Update bug_report.md 2022-04-28 19:31:40 +03:00
Sergey Starykh
8517b23dc6
Update bug_report.md 2022-04-28 19:28:14 +03:00
Sergey Starykh
e917c64589
Update bug_report.md 2022-04-28 19:27:40 +03:00
Sergey Starykh
264a870209
Update bug_report.md 2022-04-28 19:26:59 +03:00
Sergey Starykh
9071e633a6
Update bug_report.md 2022-04-28 19:24:26 +03:00
Sergey Starykh
4ef9d2e4c5
Update bug_report.md 2022-04-28 19:23:40 +03:00
Sergey Starykh
145c2a8f18
Update bug_report.md 2022-04-28 19:23:12 +03:00
Администратор
ea72ee97b0 . 2022-03-27 23:32:17 +03:00
Администратор
3a7cda13cf . 2022-03-27 23:32:17 +03:00
Администратор
8b5cf1f79c . 2022-03-27 23:32:17 +03:00
Администратор
8ff7823fc8 . 2022-03-27 23:32:17 +03:00
Администратор
15ef48a57d . 2022-03-27 23:32:17 +03:00
Администратор
5f650f6a29 . 2022-03-27 23:32:17 +03:00
Администратор
8f968eda23 . 2022-02-20 17:09:01 +03:00
Администратор
5d7d54aabd . 2022-01-30 23:49:17 +03:00
Администратор
4e6bf5ce82 . 2022-01-09 22:08:34 +03:00
Администратор
0d96ccb2c4 . 2021-12-27 00:04:03 +03:00
Администратор
7317afb5fe . 2021-12-27 00:01:04 +03:00
Администратор
13a60347c4 . 2021-12-07 23:48:20 +03:00
Администратор
3dcee11de1 . 2021-12-06 08:45:36 +03:00
Администратор
4a7a9fc85c . 2021-11-28 23:31:55 +03:00
Администратор
05cb8931fe . 2021-11-21 23:47:30 +03:00
Администратор
34093b8952 . 2021-11-16 22:34:19 +03:00
Администратор
051e40aaf3 . 2021-11-14 22:15:14 +03:00
Администратор
f741a69090 . 2021-11-07 19:23:07 +03:00
Администратор
97fbb056f5 . 2021-11-07 12:18:46 +03:00
Администратор
acafd0fdc1 . 2021-10-31 09:33:16 +03:00
Администратор
c61d78d404 . 2021-10-25 19:09:46 +03:00
Администратор
8194ef77a3 . 2021-10-25 19:01:19 +03:00
Администратор
416c70ff0c . 2021-10-25 08:24:11 +03:00
Администратор
9ba5dd2c8b . 2021-10-25 08:22:12 +03:00
Администратор
7245563b5b . 2021-10-17 22:36:16 +03:00
Администратор
df659d97b6 . 2021-10-16 22:19:06 +03:00
Администратор
c330d07c88 . 2021-10-10 23:46:22 +03:00
Администратор
c3dae5af40 . 2021-10-03 18:40:21 +03:00
Администратор
320e372f00 . 2021-10-03 09:30:19 +03:00
Администратор
d77479078c . 2021-09-28 19:57:32 +03:00
Администратор
15912caef3 . 2021-09-26 08:59:05 +03:00
Администратор
b7dffd8cec Update VERSION 2021-09-28 22:46:41 +03:00
Администратор
19e56390cb Merge branch 'master' of https://github.com/tormozit/RDT1C 2021-09-28 22:43:35 +03:00
Администратор
851eaf378a . 2021-09-26 08:59:05 +03:00
Sergey Starykh
6f3b86d51e
Update bug_report.md 2021-09-24 23:14:49 +03:00
Администратор
278fa19a07 . 2021-09-20 00:14:52 +03:00
Администратор
4f6ffb39e0 . 2021-09-19 23:03:27 +03:00
Sergey Starykh
a6c349ce96
Update feature_request.md 2021-09-20 08:18:34 +03:00
Sergey Starykh
b2b90c5f9f
Update bug_report.md 2021-09-20 08:18:13 +03:00
Sergey Starykh
3822c53539 Update issue templates 2021-09-20 08:17:40 +03:00
Администратор
9b30887ccb . 2021-09-18 23:05:04 +03:00
Администратор
a1e5ded073 restructure 2021-09-17 08:52:43 +03:00
Администратор
1f8f6575bc . 2021-09-15 20:09:07 +03:00
Администратор
d861f574ff . 2021-09-12 22:36:10 +03:00
Sergey Starykh
4e73118d21
Update feature_request.md 2021-09-16 20:07:24 +03:00
Sergey Starykh
84bd1605d0
Update bug_report.md 2021-09-16 20:07:10 +03:00
Sergey Starykh
e6d3261963 Update issue templates 2021-09-16 20:06:30 +03:00
Администратор
821b179fdd . 2021-09-11 20:58:02 +03:00
Администратор
8319aac19b . 2021-09-04 16:05:11 +03:00
Администратор
c7efc70a8f . 2021-08-29 21:52:01 +03:00
Администратор
e074734971 . 2021-08-22 23:21:29 +03:00
Администратор
7c94401352 . 2021-08-16 08:26:02 +03:00
Администратор
0b604b8721 . 2021-08-08 17:51:20 +03:00
Администратор
d26fce2ccc Merge remote-tracking branch 'origin/master' 2021-09-11 22:28:05 +03:00
Администратор
41df0be6b7 . 2021-08-01 20:45:58 +03:00
Администратор
cf9e1c7d87 . 2021-07-29 08:50:57 +03:00
Sergey Starykh
b286556db6
Create LICENSE 2021-07-28 23:57:50 +03:00
Sergey Starykh
46235a1f53
Update --------.md 2021-07-26 08:44:41 +03:00
Sergey Starykh
a1046e5354 Добавил шаблоны заявок 2021-07-26 08:39:55 +03:00
Администратор
12b4bb0b95 . 2021-07-25 23:08:08 +03:00
Администратор
972dd17bbc . 2021-07-18 23:47:52 +03:00
Администратор
7b94378a52 Merge branch 'master' of https://github.com/tormozit/RDT1C 2021-07-22 21:48:13 +03:00
Sergey Starykh
2859cca80a
Merge branch 'master' into add-license-1 2021-07-19 09:05:57 +03:00
Sergey Starykh
a385433cf5
Update LICENSE 2021-07-19 09:02:42 +03:00
Sergey Starykh
dc6c6dc031 Create LICENSE 2021-07-19 09:01:27 +03:00
Sergey Starykh
8287cbc914
Create LICENSE 2021-07-19 09:00:12 +03:00
Администратор
666b24f962 . 2021-07-18 17:10:34 +03:00
Sergey Starykh
68aaf1941e
Update README.md 2021-07-18 07:37:13 +03:00
Sergey Starykh
d45af33c0f
Update README.md 2021-07-18 07:37:06 +03:00
Sergey Starykh
52b4937385 Update issue templates 2021-07-18 07:33:33 +03:00
Sergey Starykh
e689e9429a
Update README.md 2021-07-18 07:25:16 +03:00
Sergey Starykh
8e49d26a2b
Update README.md 2021-07-18 07:20:30 +03:00
Sergey Starykh
22226a7094 Update issue templates 2021-07-18 07:18:42 +03:00
Sergey Starykh
28ad178d56
Delete ISSUE_TEMPLATE.MD 2021-07-18 07:14:48 +03:00
Sergey Starykh
cb591fbbca Update issue templates 2021-07-18 07:14:01 +03:00
Sergey Starykh
74567d8725
Update --------.md 2021-07-18 07:08:03 +03:00
Sergey Starykh
684da9fdd4 Создал шаблоны заявок 2021-07-18 07:04:01 +03:00
Sergey Starykh
f93c2e7705
Update ISSUE_TEMPLATE.MD 2021-07-18 06:49:29 +03:00
Sergey Starykh
3ea0164b6e
Update ISSUE_TEMPLATE.MD 2021-07-18 06:47:45 +03:00
Sergey Starykh
e29112f95d
Create ISSUE_TEMPLATE.MD 2021-07-18 06:46:03 +03:00
Sergey Starykh
314a33a041
Update README.md 2021-07-18 05:53:06 +03:00
Sergey Starykh
52f46579c1
Create README.md 2021-07-18 05:51:47 +03:00
Администратор
90efa35322 . 2021-07-17 10:01:17 +03:00
3312 changed files with 1840214 additions and 1373560 deletions

20
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

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

View File

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

0
.gitignore vendored Normal file
View File

View File

@ -1,7 +0,0 @@

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

View File

@ -1,272 +0,0 @@
Перем мТелоПозиционногоМетода;
Перем мТелоПоименногоМетода;
Перем ДатаИзмененияКонтекста Экспорт;
Перем мСтруктураВнешнейОбработки Экспорт;
Перем ИндивидуальнаяВнешняяОбработка Экспорт;
//Процедура ДобавитьПараметрыВСтруктуру(СтруктураПараметров) Экспорт
// Для Каждого СтрокаПараметра Из Параметры Цикл
// Если Не СтруктураПараметров.Свойство(СтрокаПараметра.Имя) Тогда
// СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
// КонецЕсли;
// КонецЦикла;
// ИмяПараметра = "Результат";
// Если Не СтруктураПараметров.Свойство(ИмяПараметра) Тогда
// СтруктураПараметров.Вставить(ИмяПараметра);
// КонецЕсли;
//КонецПроцедуры // ПолучитьСтруктуруПараметров()
Функция ПолучитьСтартовуюСтрокуАлгоритмаВТексте() Экспорт
Возврат Параметры.Количество();
КонецФункции // ПолучитьСтартовуюСтрокуАлгоритмаВМодуле()
Функция ПолучитьСтартовуюСтрокуМетодаВМодуле() Экспорт
Результат = 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

@ -1,61 +0,0 @@

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

View File

@ -1,208 +0,0 @@
<?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>0:60b48362-4a19-4a23-95da-9a9ce4ad14c5</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="8002"/>
</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>
</Attributes>
<Commands>
<Command name="КонсольКода" id="1">
<Title>
<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>
</Title>
<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>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>
<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>
</Title>
<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>
</Picture>
<Action>НастройкиВыполненияАлгоритмов</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
</Form>

View File

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

View File

@ -1,489 +0,0 @@
Перем ПолеТекстаПрограммы;
Перем мЗначенияПараметров;
Процедура ПередЗаписью(Отказ)
Если Не ПроверитьДанные() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
СинтаксическийКонтрольПередЗаписью = ирКэш.Получить().СинтаксическийКонтрольПередЗаписью;
Если СинтаксическийКонтрольПередЗаписью = Истина Тогда
ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
Если Не ПолеТекстаПрограммы.ПроверитьПрограммныйКод() Тогда
Ответ = Вопрос("При проверке текста алгоритма обнаружены ошибки. Продолжить?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Не Отказ Тогда
ТекстАлгоритма = ПолеТекстаПрограммы.ПолеТекста.ПолучитьТекст();
КонецЕсли;
КонецПроцедуры
Процедура ПриИзмененииДанных()
ПолеТекстаПрограммы.ПолеТекста.УстановитьТекст(ТекстАлгоритма);
КонецПроцедуры
Функция ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров()
ирОбщий.ИнициироватьГлобальныйКонтекстПодсказкиЛкс(ПолеТекстаПрограммы);
// Локальный
СтруктураПараметров = Новый Структура;
Для Каждого СтрокаПараметра Из Параметры Цикл
СтруктураПараметров.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
Если СтрокаПараметра.Значение <> Неопределено Тогда
МассивТипов = Новый Массив;
МассивТипов.Добавить(ТипЗнч(СтрокаПараметра.Значение));
ПолеТекстаПрограммы.ДобавитьСловоЛокальногоКонтекста(
СтрокаПараметра.Имя, "Свойство", Новый ОписаниеТипов(МассивТипов), , , СтрокаПараметра.Значение);
КонецЕсли;
//Если Не ПустаяСтрока(СтрокаПараметра.ДопустимыеТипы) Тогда
ПолеТекстаПрограммы.ДобавитьПеременнуюЛокальногоКонтекста(
СтрокаПараметра.Имя, СтрокаПараметра.ДопустимыеТипы);
//КонецЕсли;
КонецЦикла;
// Результат
ПолеТекстаПрограммы.ДобавитьСловоЛокальногоКонтекста(
"Результат", "Свойство", Новый ОписаниеТипов(Новый Массив));
Возврат СтруктураПараметров;
КонецФункции // ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров()
// @@@.КЛАСС.ПолеТекстаПрограммы
Процедура КлсПолеТекстаПрограммыНажатие(Кнопка)
СтруктураПараметров = ОбновитьКонтекстПодсказкиИПолучитьСтруктуруПараметров();
// Специальная обработка команд компоненты ДО
КомпонентаТекстаАлгоритма = ПолеТекстаПрограммы;
Если Ложь
Или Кнопка = ирОбщий.КнопкаКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстаПрограммы, "Выполнить")
Или Кнопка = ирОбщий.КнопкаКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстаПрограммы, "Проверить")
Тогда
Если Не ПроверитьДанные() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если Кнопка = ирОбщий.КнопкаКоманднойПанелиЭкземпляраКомпонентыЛкс(ПолеТекстаПрограммы, "Выполнить") Тогда
Если ПолеТекстаПрограммы.ПроверитьПрограммныйКод() Тогда
Если Модифицированность Тогда
Ответ = Вопрос("Перед выполнением алгоритм необходимо сохранить. Выполнить сохранение?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
Если Не ЗаписатьВФорме() Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ирКэш.Получить().ВыполнитьМетодАлгоритма(ЭтотОбъект, 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

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

View File

@ -1,118 +0,0 @@
{27,
{18,
{
{1,0},6,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,0,0,0,0,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,3,
{"ru","Страница1"},
{"en","Страница1"},
{"uk","Страница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,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}
},
{0}
},400,300,1,0,1,4,4,65,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},
{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

@ -1,13 +0,0 @@

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

View File

@ -1,35 +0,0 @@

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

View File

@ -1,811 +0,0 @@
{27,
{18,
{
{1,3,
{"ru","Справочник Объекты для отладки (ИР)"},
{"en","Справочник Объекты для отладки (ИР)"},
{"uk","Справочник Объекты для отладки (ИР)"}
},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,3,
{"ru","Страница1"},
{"en","Страница1"},
{"uk","Страница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,2,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,
{18,
{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,0,0},
{-1},
{-1},
{-1}
},1}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{18,
{1,3,
{"ru","Код"},
{"en","Код"},
{"uk","Код"}
},
{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,0,0},
{-2},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{18,
{1,3,
{"ru","Наименование"},
{"en","Наименование"},
{"uk","Наименование"}
},
{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,0,0},
{-3},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{18,
{1,3,
{"ru","Дата изменения"},
{"en","Дата изменения"},
{"uk","Дата изменения"}
},
{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,0},
{0,ef3c7e63-7dc3-4e7a-a871-daaa0e3dd570},
{-1},
{-1}
},0}
},
{48a6ebc3-fcc8-4f8f-b399-459fb32aa46b,
{4,
{8,
{18,
{1,3,
{"ru","Число символов"},
{"en","Число символов"},
{"uk","Число символов"}
},
{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,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,431,1,6,
{7,9efdf08e-bae0-444f-bee8-e4cac9ff829a,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,1},
{7,4b1d963b-aa07-41c4-99e2-f1fbf65e1ef7,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,3,
{"ru","Отладить"},
{"en","Отладить"},
{"uk","Отладить"}
},
{1,3,
{"ru","Отладить"},
{"en","Отладить"},
{"uk","Отладить"}
},
{4,1,
{0,5f19d61d-030e-4b03-820d-c1997cb9137a},"",-1,-1,0,0,""},1},
{7,daded282-c324-4f89-80a3-3530bcd53c79,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,3,
{"ru","О подсистеме"},
{"en","О подсистеме"},
{"uk","О подсистеме"}
},
{1,3,
{"ru","О подсистеме"},
{"en","О подсистеме"},
{"uk","О подсистеме"}
},
{4,1,
{0,f4bd79b3-3b25-494b-99c4-74b39341e007},"",-1,-1,0,0,""},1},
{7,4cdfb69a-4d72-4d6d-aea3-5961d74622fa,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,1},
{7,73ad6a67-dfa9-4aa2-b990-1b3a5209c4d5,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,3,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},
{1,3,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},
{4,3,
{0},"",-1,-1,0,
{
{#base64:R0lGODlhEAAQADMAACH5BAEAAAEALAAAAAAQABAAo////wEAAK6u5MHB60pKwoaG
1wAAzOrq+AC0AzY2oHJy0AAAAF1dyQAAAAAAAAAAAARzkMhJU7iYDMBHUYkSINil
AR4RjghZaoUqtnQZaGuwBIZuFwOC6NLrBTgCAJBwACQBhmZAQBUsC1WBAXt0KoPN
ZxRwxH4TBe9gS0YqNWHOuJxUFdLJdbr7PDS9UFJKeQOFTgaIiHwcjF6JB3QohRt5
BgxkEQA7}
},0,""},1},
{7,7d927659-5945-4446-9fa0-b60843e096c7,1,abde0c9a-18a6-4e0c-bbaa-af26b911b3e6,
{1,9d0a2e40-b978-11d4-84b6-008048da06df,0},0,1},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,6,9efdf08e-bae0-444f-bee8-e4cac9ff829a,
{8,"Разделитель4",0,1,
{1,1,
{"ru","Действие9"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,17,1e2,2,0,1,0,0,0,0},4b1d963b-aa07-41c4-99e2-f1fbf65e1ef7,
{8,"Отладить",0,2,
{1,3,
{"ru","Отладить"},
{"en","Отладить"},
{"uk","Отладить"}
},1,fd3fe296-ace1-4714-8a0e-a902b716c8d3,80,1e2,0,3,1,0,0,0,0},4cdfb69a-4d72-4d6d-aea3-5961d74622fa,
{8,"Разделитель5",0,1,
{1,1,
{"ru","Действие9"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,81,1e2,2,0,1,0,0,0,0},73ad6a67-dfa9-4aa2-b990-1b3a5209c4d5,
{8,"МенеджерТабличногоПоля",0,1,
{1,3,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},1,fd3fe296-ace1-4714-8a0e-a902b716c8d3,16,1e2,0,0,1,0,0,0,0},7d927659-5945-4446-9fa0-b60843e096c7,
{8,"Разделитель7",0,4,
{1,1,
{"ru","Действие6"}
},0,fd3fe296-ace1-4714-8a0e-a902b716c8d3,33,1e2,2,0,1,0,0,0,0},daded282-c324-4f89-80a3-3530bcd53c79,
{8,"ОПодсистеме",0,4,
{1,3,
{"ru","О подсистеме"},
{"en","О подсистеме"},
{"uk","О подсистеме"}
},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,48,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

@ -1,154 +0,0 @@
<?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>0:60b48362-4a19-4a23-95da-9a9ce4ad14c5</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="8002"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<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

@ -1,9 +0,0 @@

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.РежимВыбора Тогда
Элементы.Список.РежимВыбора = Истина;
КонецЕсли;
КонецПроцедуры

View File

@ -1,27 +0,0 @@
<?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>
<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>FormCommandBar</Category>
</Properties>
</CommandGroup>
</MetaDataObject>

View File

@ -1,27 +0,0 @@
<?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>
<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>ActionsPanel</Category>
</Properties>
</CommandGroup>
</MetaDataObject>

View File

@ -1,54 +0,0 @@
<?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>
<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>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<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="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

@ -1,13 +0,0 @@

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

View File

@ -1,54 +0,0 @@
<?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="358b7d11-d129-4400-ab35-dea688506ed8">
<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>CommandGroup.ирКоманднаяПанельФормы</Group>
<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="14" 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>Multiple</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -1,15 +0,0 @@

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

View File

@ -1,49 +0,0 @@
<?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>
<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>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<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>false</xr:LoadTransparent>
</Picture>
<Shortcut/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<CommandParameterType/>
<ParameterUseMode>Single</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<OnMainServerUnavalableBehavior>Auto</OnMainServerUnavalableBehavior>
</Properties>
</CommonCommand>
</MetaDataObject>

View File

@ -1,15 +0,0 @@

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

View File

@ -1,54 +0,0 @@
<?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>
<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>
<Group>CommandGroup.ирКоманднаяПанельФормы</Group>
<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="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

@ -1,13 +0,0 @@

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

View File

@ -1,778 +0,0 @@
<?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="31">
<Type>CommandBarButton</Type>
<Representation>PictureAndText</Representation>
<DefaultButton>true</DefaultButton>
<CommandName>Form.StandardCommand.Close</CommandName>
<Title>
<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>
</Title>
<ExtendedTooltip name="ФормаЗакрытьРасширеннаяПодсказка" id="32"/>
</Button>
<Button name="ФормаВыполнить" id="1">
<Type>CommandBarButton</Type>
<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>
<UsualGroup name=руппа1" id="64">
<Title>
<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>
</Title>
<Height>4</Height>
<Group>AlwaysHorizontal</Group>
<Representation>StrongSeparation</Representation>
<BackColor>#FFFF99</BackColor>
<ExtendedTooltip name=руппа1РасширеннаяПодсказка" id="65"/>
<ChildItems>
<PictureDecoration name=екорация2" id="91">
<Width>2</Width>
<Picture>
<xr:Ref>StdPicture.AppearanceExclamationMarkIcon</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<ContextMenu name=екорация2КонтекстноеМеню" id="92"/>
<ExtendedTooltip name=екорация2РасширеннаяПодсказка" id="93"/>
</PictureDecoration>
<LabelDecoration name="ДекорацияГлобальныеКоманды" id="52">
<AutoMaxWidth>false</AutoMaxWidth>
<HorizontalStretch>true</HorizontalStretch>
<TextColor>style:FieldSelectionBackColor</TextColor>
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Глобальное контекстное меню подсистемы вызывается сочетанием CTRL+~(тильда или ё) в любой управляемой форме. Это не требует адаптации расширения.</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Глобальное контекстное меню подсистемы вызывается сочетанием CTRL+~(тильда или ё) в любой управляемой форме. Это не требует адаптации расширения.</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Глобальное контекстное меню подсистемы вызывается сочетанием CTRL+~(тильда или ё) в любой управляемой форме. Это не требует адаптации расширения.</v8:content>
</v8:item>
</Title>
<ContextMenu name="ДекорацияГлобальныеКомандыКонтекстноеМеню" id="53"/>
<ExtendedTooltip name="ДекорацияГлобальныеКомандыРасширеннаяПодсказка" id="54"/>
</LabelDecoration>
</ChildItems>
</UsualGroup>
<CheckBoxField name="Использование" id="77">
<DataPath>ОткрыватьАдаптациюПриОбновлении</DataPath>
<Title>
<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>
</Title>
<TitleLocation>Right</TitleLocation>
<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>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ИспользованиеКонтекстноеМеню" id="78"/>
<ExtendedTooltip name="ИспользованиеРасширеннаяПодсказка" id="79"/>
</CheckBoxField>
<LabelDecoration name=екорация3" id="74">
<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>
<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>
</Title>
<ContextMenu name=екорация3КонтекстноеМеню" id="75"/>
<ExtendedTooltip name=екорация3РасширеннаяПодсказка" id="76"/>
</LabelDecoration>
<UsualGroup name=руппа3" id="80">
<Group>AlwaysHorizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name=руппа3РасширеннаяПодсказка" id="81"/>
<ChildItems>
<InputField name="ИмяПользователя" id="82">
<DataPath>ИмяПользователя</DataPath>
<DropListButton>true</DropListButton>
<ContextMenu name="ИмяПользователяКонтекстноеМеню" id="83"/>
<ExtendedTooltip name="ИмяПользователяРасширеннаяПодсказка" id="84"/>
</InputField>
<InputField name="ПарольПользователя" id="85">
<DataPath>ПарольПользователя</DataPath>
<PasswordMode>true</PasswordMode>
<ContextMenu name="ПарольПользователяКонтекстноеМеню" id="86"/>
<ExtendedTooltip name="ПарольПользователяРасширеннаяПодсказка" id="87"/>
</InputField>
</ChildItems>
</UsualGroup>
<CheckBoxField name="ДобавитьРольВсеПрава" id="68">
<DataPath>СгенерироватьРольВсеПрава</DataPath>
<Visible>false</Visible>
<Title>
<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>
</Title>
<TitleLocation>Right</TitleLocation>
<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>
<ToolTipRepresentation>ShowAuto</ToolTipRepresentation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ДобавитьРольВсеПраваКонтекстноеМеню" id="69"/>
<ExtendedTooltip name="ДобавитьРольВсеПраваРасширеннаяПодсказка" id="70">
<AutoMaxWidth>false</AutoMaxWidth>
<TextColor>style:FieldSelectionBackColor</TextColor>
</ExtendedTooltip>
</CheckBoxField>
<CheckBoxField name="ПодключитьОтладкуВнешнихОбработокБСП" id="71">
<DataPath>ПодключитьОтладкуВнешнихОбработокБСП</DataPath>
<TitleLocation>Right</TitleLocation>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Необходимо для работы инструмента "Отладка внешних обработок БСП" в БСП 2.4+</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Необходимо для работы инструмента "Отладка внешних обработок БСП" в БСП 2.4+</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Необходимо для работы инструмента "Отладка внешних обработок БСП" в БСП 2.4+</v8:content>
</v8:item>
</ToolTip>
<ToolTipRepresentation>ShowAuto</ToolTipRepresentation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ПодключитьОтладкуВнешнихОбработокБСПКонтекстноеМеню" id="72"/>
<ExtendedTooltip name="ПодключитьОтладкуВнешнихОбработокБСПРасширеннаяПодсказка" id="73">
<AutoMaxWidth>false</AutoMaxWidth>
<TextColor>style:FieldSelectionBackColor</TextColor>
</ExtendedTooltip>
</CheckBoxField>
<UsualGroup name=руппа2" id="66">
<Title>
<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>
</Title>
<Group>Vertical</Group>
<ExtendedTooltip name=руппа2РасширеннаяПодсказка" id="67"/>
<ChildItems>
<CheckBoxField name="ПодключитьОтладкуОтчетов" id="88">
<DataPath>ПодключитьОтладкуОтчетов</DataPath>
<TitleLocation>Right</TitleLocation>
<ToolTipRepresentation>ShowAuto</ToolTipRepresentation>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ПодключитьОтладкуОтчетовКонтекстноеМеню" id="89"/>
<ExtendedTooltip name="ПодключитьОтладкуОтчетовРасширеннаяПодсказка" id="90">
<AutoMaxWidth>false</AutoMaxWidth>
<TextColor>style:FieldSelectionBackColor</TextColor>
<Title formatted="false">
<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>
</Title>
</ExtendedTooltip>
</CheckBoxField>
<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>
<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>
</Title>
<ContextMenu name=екорация1КонтекстноеМеню" id="4"/>
<ExtendedTooltip name=екорация1РасширеннаяПодсказка" id="5"/>
</LabelDecoration>
<Table name="СписокКоманд" id="6">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<Height>3</Height>
<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>
<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>
</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>
<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>
</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>
</UsualGroup>
</ChildItems>
<Attributes>
<Attribute name="СписокКоманд" id="1">
<Title>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<Attribute name="ГлобальныеСочетанияКлавиш" id="2">
<Title>
<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>
</Title>
<Type>
<v8:Type>v8:ValueTable</v8:Type>
</Type>
<Columns>
<Column name="СочетаниеКлавиш" id="2">
<Title>
<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>
</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="1">
<Title>
<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>
</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>
<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>
</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>
<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>
</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>
<Attribute name="СгенерироватьРольВсеПрава" id="3">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="ПодключитьОтладкуВнешнихОбработокБСП" id="4">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="ОткрыватьАдаптациюПриОбновлении" id="5">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="ИмяПользователя" id="6">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>100</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ПарольПользователя" id="7">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>50</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ПодключитьОтладкуОтчетов" id="8">
<Title>
<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>
</Title>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="Выполнить" id="1">
<Title>
<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>
</Title>
<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>
<Action>ВыполнитьОперацию</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
<Parameters>
<Parameter name="Автооткрытие">
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Parameter>
</Parameters>
</Form>

View File

@ -1,133 +0,0 @@

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

View File

@ -1,32 +0,0 @@
<?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>
<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>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

@ -1,576 +0,0 @@
// Параметры:
// КаталогРаспаковки - Строка(0,П)
//
Функция ПолучитьФайлСтруктурыХранилищаОбъектаМетаданных(Знач КаталогРаспаковки = "") Экспорт
RegExp = ирПлатформа.RegExp;
RegExp.Global = Ложь;
RegExp.Pattern = "{2,(" + ирПлатформа.шGUID + "),";
ФайлКорневогоУказателя = Новый Файл(КаталогРаспаковки + "root.data.und");
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ФайлКорневогоУказателя.ПолноеИмя);
РезультатыПоиска = RegExp.НайтиВхождения(ТекстовыйДокумент.ПолучитьТекст());
КорневойИД = РезультатыПоиска[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.НайтиВхождения(ТекстовыйДокумент.ПолучитьТекст());
//СтарыеТекстыМодулейФорм = Новый Структура;
//ИДФормы = РезультатыПоиска[0].SubMatches(0);
ФайлСтруктуры = ПолучитьФайлСтруктурыХранилищаОбъектаМетаданных(КаталогРаспаковки);
ТекстСтруктуры = Новый ТекстовыйДокумент;
ТекстСтруктуры.Прочитать(ФайлСтруктуры.ПолноеИмя);
RegExp.Global = Ложь;
RegExp.Pattern = "\{d5b0e5ed-256d-401c-9c36-f630cafd8a62,\d+((?:," + ирПлатформа.шGUID + ")*)\}";
РезультатыПоиска = RegExp.НайтиВхождения(ТекстСтруктуры.ПолучитьТекст());
ТекстСпискаИД = РезультатыПоиска[0].SubMatches(0);
RegExp.Global = Истина;
RegExp.Pattern = ирПлатформа.шGUID;
РезультатыПоиска = RegExp.НайтиВхождения(ТекстСпискаИД);
Для Каждого Вхождение Из РезультатыПоиска Цикл
ТекстФайлаФормы = Новый ТекстовыйДокумент;
ТекстФайлаФормы.Прочитать(КаталогРаспаковки + Вхождение.Value + ".data.und");
//RegExp.Global = Ложь;
//RegExp.Pattern = Вхождение.Value + "\},""(" + ирПлатформа.шИмя + ")"";
//РезультатыПоиска2 = RegExp.НайтиВхождения(ТекстФайлаФормы.ПолучитьТекст());
Маркер = Вхождение.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.НайтиВхождения(ОстатокТекста0);
Если Вхождения.Количество() = 0 Тогда
Сообщить("При анализе диалога не найден маркер1");
Возврат Неопределено;
ИначеЕсли Вхождения.Количество() > 1 Тогда
Сообщить("При анализе диалога найдено более одного маркера1");
Возврат Неопределено;
КонецЕсли;
Позиция = Вхождения[0].FirstIndex;
Позиция = Позиция + СтрДлина(Вхождения[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

@ -1,718 +0,0 @@
{27,
{18,
{
{1,3,
{"ru","Выпуск варианта Портативный (ИР)"},
{"en","Выпуск варианта Портативный (ИР)"},
{"uk","Выпуск варианта Портативный (ИР)"}
},10,2},
{09ccdc77-ea1a-4a6d-ab1c-3435eada2433,
{1,
{
{16,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,0},26,0,2,
{0,2,0},
{0,2,1},1,
{0,2,2},3,
{0,2,3},
{0,3,3},
{0,5,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,3,
{"ru","Страница1"},
{"en","Страница1"},
{"uk","Страница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,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},
{0}
},
{6,
{e69bf21d-97b2-4f37-86db-675aea9ec2cb,2,
{2,
{
{16,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,0},9,1,0,2,0,1,
{5,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1,1,
{7,9f2ac27d-d06e-4eb1-bfb8-c686c031ae4c,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}
}
},6,
{1,3,
{"ru","Выполнить"},
{"en","Выполнить"},
{"uk","Выполнить"}
},
{1,3,
{"ru","Выполнить"},
{"en","Выполнить"},
{"uk","Выполнить"}
},1},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,1,9f2ac27d-d06e-4eb1-bfb8-c686c031ae4c,
{8,"Выполнить",0,1,
{1,3,
{"ru","Выполнить"},
{"en","Выполнить"},
{"uk","Выполнить"}
},1,1cdb5be4-467e-46e9-bbd2-7273737aa3a8,1,1e2,0,0,1,0,0,0,0},
{-1,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,75107755-bd2e-4298-a45c-42bc459825f1,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"}
},
{
{
{16,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,3,
{"ru","Куда выгружать готовые файлы портативного варианта"},
{"en","Куда выгружать готовые файлы портативного варианта"},
{"uk","Куда выгружать готовые файлы портативного варианта"}
},0,0,100,1,0},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,
{
{16,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,3,
{"ru","Куда помещать выпускаемые файлы"},
{"en","Куда помещать выпускаемые файлы"},
{"uk","Куда помещать выпускаемые файлы"}
},0,0,100,0,0},11,
{1,3,
{"ru","Каталог выпуска:"},
{"en","Каталог выпуска:"},
{"uk","Каталог выпуска:"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},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},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"}
},
{
{
{16,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,3,
{"ru","Строка соединения базы подсистемы ""Инструменты разработчика"". Если пустая, используется текущая база."},
{"en","Строка соединения базы подсистемы ""Инструменты разработчика"". Если пустая, используется текущая база."},
{"uk","Строка соединения базы подсистемы ""Инструменты разработчика"". Если пустая, используется текущая база."}
},0,0,100,1,0},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,
{
{16,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,0},11,
{1,3,
{"ru","База подсистемы:"},
{"en","База подсистемы:"},
{"uk","База подсистемы:"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},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},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,
{
{16,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,0},11,
{1,3,
{"ru","Рекомендуется выполнять в базе с конфигурацией, содержащей чистую подсистему ИР"},
{"en","Рекомендуется выполнять в базе с конфигурацией, содержащей чистую подсистему ИР"},
{"uk","Рекомендуется выполнять в базе с конфигурацией, содержащей чистую подсистему ИР"}
},4,1,0,0,0,
{0,0,0},0,
{1,0},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},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,212,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},
{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

@ -1,32 +0,0 @@
<?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>
<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>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

@ -1,303 +0,0 @@
Процедура ОсновныеДействияФормыВыполнить(Кнопка)
// Если указать ИсполняемыйФайлПлатформы, то будет ошибка при загрузке расширения из файлов
// Неизвестная версия формата 2.6 загружаемого файла
ЭтаФорма.ИсполняемыйФайлПлатформы = "";
КаталогВыгрузкиКонфигурации = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиКонфигурации);
ТекстЛога = "";
// Выгружаем конфигурацию в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиКонфигурации + """ -Format Hierarchical", СтрокаСоединенияИнформационнойБазы(), ТекстЛога,,
"Выгрузка конфигурации в файлы",,,, ИмяПользователя, ПарольПользователя);
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(ТекстЛога);
Возврат;
КонецЕсли;
//КаталогВыгрузкиКонфигурации = "Z:\Ир"; // Для отладки
Результат = СоздатьРасширение("e", КаталогВыгрузкиКонфигурации);
УдалитьФайлы(КаталогВыгрузкиКонфигурации);
Сообщить(Результат);
//Предупреждение("Не забудь вручную убрать флажок ""Проверять значения языка"" у расширения!");
КонецПроцедуры
Функция СоздатьРасширение(Знач СуффиксВерсии, Знач КаталогВыгрузкиКонфигурации)
ВерсияРасширения = Метаданные.Версия + СуффиксВерсии;
ИмяРасширения = "Расширение1";
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("cfe");
ПолучитьОбщийМакет("ирШаблонРасширения").Записать(ИмяВременногоФайла);
ТекстЛога = "";
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadCfg """ + ИмяВременногоФайла + """ -Extension """ + ИмяРасширения + """", , ТекстЛога,,, Истина, ИсполняемыйФайлПлатформы);
Если Не Успех Тогда
УдалитьФайлы(ИмяВременногоФайла);
Сообщить(ТекстЛога);
Возврат Неопределено;
КонецЕсли;
УдалитьФайлы(ИмяВременногоФайла);
ТекстЛога = "";
КаталогВыгрузкиРасширения = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогВыгрузкиРасширения);
// Выгрузка расширения в файлы
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Выгрузка расширения в файлы",, ИсполняемыйФайлПлатформы);
Если Не Успех Тогда
УдалитьФайлы(КаталогВыгрузкиРасширения);
Сообщить(ТекстЛога);
Возврат Неопределено;
КонецЕсли;
//Предупреждение(1);
RegExp = ирКэш.ВычислительРегВыраженийЛкс();
RegExp.Global = Истина;
// Скопируем все папки кроме Catalogs и Ext и файла ConfigDumpInfo.xml
Файлы = НайтиФайлы(КаталогВыгрузкиКонфигурации, "*");
Для Каждого Файл Из Файлы Цикл
Если Ложь
Или Файл.Имя = "Catalogs"
Или Файл.Имя = "Ext"
Или Не Файл.ЭтоКаталог()
Тогда
Продолжить;
КонецЕсли;
ФайлПриемник = Новый Файл(КаталогВыгрузкиРасширения + "\" + Файл.Имя);
Если Не ФайлПриемник.Существует() Тогда
СоздатьКаталог(ФайлПриемник.ПолноеИмя);
КонецЕсли;
ирОбщий.СкопироватьФайлыЛкс(КаталогВыгрузкиКонфигурации + "\" + Файл.Имя, КаталогВыгрузкиРасширения + "\" + Файл.Имя);
КонецЦикла;
// Во всех CommonCommands удалить <CommandParameterType>...</CommandParameterType>
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\CommonCommands", "*.xml");
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
ЧтоЗаменить = ирОбщий.СтрокаМеждуМаркерамиЛкс(ТекстФайла, "<CommandParameterType>", "</CommandParameterType>", Ложь, Истина);
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// Очищаем ссылки в подсистемах
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\SubSystems", "*.xml", Истина);
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
//ТекстФайла = ирОбщий.СтрЗаменитьЛкс(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">CommonCommand.ирОткрытьНастройкиАлгоритмов</xr:Item>", "");
Пока Истина Цикл
ЧтоЗаменить = ирОбщий.СтрокаМеждуМаркерамиЛкс(ТекстФайла, "<xr:Item xsi:type=""xr:MDObjectRef"">Catalog.", "</xr:Item>", Ложь, Истина);
Если Не ЗначениеЗаполнено(ЧтоЗаменить) Тогда
Прервать;
КонецЕсли;
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
КонецЦикла;
Пока Истина Цикл
ЧтоЗаменить = ирОбщий.СтрокаМеждуМаркерамиЛкс(ТекстФайла, "<Command name=""Catalog.", "</Command>", Ложь, Истина);
Если Не ЗначениеЗаполнено(ЧтоЗаменить) Тогда
Прервать;
КонецЕсли;
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
КонецЦикла;
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// Очищаем ссылки в ролях
Файлы = НайтиФайлы(КаталогВыгрузкиРасширения + "\Roles", "*.xml", Истина);
Для Каждого Файл Из Файлы Цикл
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(Файл.ПолноеИмя);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
Пока Истина Цикл
ЧтоЗаменить = ирОбщий.СтрокаМеждуМаркерамиЛкс(ТекстФайла,
" <object>
| <name>Catalog.", "</object>", Ложь, Истина);
Если Не ЗначениеЗаполнено(ЧтоЗаменить) Тогда
Прервать;
КонецЕсли;
ТекстФайла = СтрЗаменить(ТекстФайла, ЧтоЗаменить, "");
КонецЦикла;
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(Файл.ПолноеИмя);
КонецЦикла;
// У общего модуля ирГлобальный убираем флажок Сервер, т.к. в расширении такие общие модули недопустимы
ИмяФайла = КаталогВыгрузкиРасширения + "\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";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайла);
ТекстФайла = ТекстовыйДокумент.ПолучитьТекст();
RegExp.Pattern = "(<Comment)>(\S)+?(</Comment>)";
ТекстФайла = RegExp.Replace(ТекстФайла, "$1>" + ВерсияРасширения + "$3"); // После номера группы обязательно делать не цифру
RegExp.Pattern = "(<v8:content>Инструменты разработчика\s*) (\S)+?(\s*</v8:content>)";
ТекстФайла = RegExp.Replace(ТекстФайла, "$1 " + ВерсияРасширения + "$3"); // После номера группы обязательно делать не цифру. Замена делается для каждого языка
ТекстовыйДокумент.УстановитьТекст(ТекстФайла);
ТекстовыйДокумент.Записать(ИмяФайла);
ИмяФайла = КаталогВыгрузкиРасширения + "\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>");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Language>Английский</Language>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Language>Украинский</Language>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Interface>ирРазработчик</Interface>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Style>ирОсновной</Style>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Catalog>ирАлгоритмы</Catalog>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Catalog>ирКомандаРедактироватьОбъект</Catalog>", "");
ТекстФайлаПриемника = ирОбщий.СтрЗаменитьЛкс(ТекстФайлаПриемника, "<Catalog>ирОбъектыДляОтладки</Catalog>", "");
ТекстовыйДокумент.УстановитьТекст(ТекстФайлаПриемника);
ТекстовыйДокумент.Записать(ФайлКонфигурацииПриемника);
// Загрузка расширения из файлов
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога,,
"Загрузка расширения из файлов",, ИсполняемыйФайлПлатформы);
УдалитьФайлы(КаталогВыгрузкиРасширения); // Закомментировано для отладки
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат Неопределено;
КонецЕсли;
//// Выгружаем расширение в файлы
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpConfigToFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
//ФайлКонфигурацииИсточника = КаталогВыгрузкиРасширения + "\Configuration.xml";
//ТекстовыйДокумент = Новый ТекстовыйДокумент;
//ТекстовыйДокумент.Прочитать(ФайлКонфигурацииИсточника);
//ТекстФайлаИсточника = ТекстовыйДокумент.ПолучитьТекст();
//Предупреждение(1);
//ТекстФайлаИсточника = СтрЗаменить(ТекстФайлаИсточника, "<DefaultLanguage>Language.ирРусский</DefaultLanguage>", ""); // На первом проходе в 8.3.10 невозможно сделать
//ТекстовыйДокумент.УстановитьТекст(ТекстФайлаИсточника);
//ТекстовыйДокумент.Записать(ФайлКонфигурацииИсточника);
//
//// Загружаем расширение из файлов
//Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/LoadConfigFromFiles """ + КаталогВыгрузкиРасширения + """ -Extension """ + ИмяРасширения + """ -Format Hierarchical", , ТекстЛога);
//Если Не Успех Тогда
// УдалитьФайлы(КаталогВыгрузкиРасширения);
// Сообщить(ТекстЛога);
// Возврат;
//КонецЕсли;
// Выгружаем расширение
КонечныйФайл = Каталог + "\ИР " + ВерсияРасширения + ".cfe";
Успех = ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("/DumpCfg """ + КонечныйФайл + """ -Extension """ + ИмяРасширения + """", , ТекстЛога,,,, ИсполняемыйФайлПлатформы);
Если Не Успех Тогда
Сообщить(ТекстЛога);
Возврат Неопределено;
КонецЕсли;
Если ирКэш.НомерВерсииПлатформыЛкс() < 803013 Тогда
// https://partners.v8.1c.ru/forum/t/1713417/m/1713417
Сообщить("Выполните изменение свойства ""Режим совместимости"" расширения, оставив его выключенным");
ирОбщий.ВыполнитьКомандуКонфигуратораЛкс("",,,,,,, Ложь);
КонецЕсли;
Возврат КонечныйФайл;
КонецФункции
Процедура КаталогНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ВыбратьКаталогВФормеЛкс(Каталог);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог", Каталог);
ирОбщий.СохранитьЗначениеЛкс("ирВыпускВариантаРасширение.ИсполняемыйФайлПлатформы", ИсполняемыйФайлПлатформы);
КонецПроцедуры
Процедура ПриОткрытии()
ЭтаФорма.Каталог = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаРасширение.Каталог");
ЭтаФорма.ИсполняемыйФайлПлатформы = ирОбщий.ВосстановитьЗначениеЛкс("ирВыпускВариантаРасширение.ИсполняемыйФайлПлатформы");
ирОбщий.ЗаполнитьСписокАдминистраторовБазыЛкс(ЭлементыФормы.ИмяПользователя.СписокВыбора);
ЭтаФорма.ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Если ирКэш.НомерВерсииПлатформыЛкс() < 803010 Тогда
Сообщить("Поддерживается только платформа 8.3.10 и выше");
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ИсполняемыйФайлПлатформыНачалоВыбора(Элемент, СтандартнаяОбработка)
РезультатВыбора = ирОбщий.ВыбратьФайлЛкс(, "exe",, Элемент.Значение);
Если ЗначениеЗаполнено(РезультатВыбора) Тогда
Элемент.Значение = РезультатВыбора;
КонецЕсли;
КонецПроцедуры

View File

@ -1,32 +0,0 @@
<?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>
<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>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

@ -1,687 +0,0 @@
<?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>0:3330c3e5-734f-4ba1-b58c-7e86e4965d8d</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОткрытьОтладчикРасширеннаяПодсказка" id="56"/>
</Button>
<Button name="ФормаОбщаяКомандаирОПодсистеме" id="54">
<Type>CommandBarButton</Type>
<CommandName>0:60b48362-4a19-4a23-95da-9a9ce4ad14c5</CommandName>
<ExtendedTooltip name="ФормаОбщаяКомандаирОПодсистемеРасширеннаяПодсказка" id="57"/>
</Button>
<Button name="ФормаОПодсистеме" id="83">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.ОПодсистеме</CommandName>
<ExtendedTooltip name="ФормаОПодсистемеРасширеннаяПодсказка" id="84"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="ExternalEvent">ВнешнееСобытие</Event>
<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>
<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>
<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>
<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>
<ChoiceButton>true</ChoiceButton>
<ClearButton>true</ClearButton>
<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>
<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>
<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>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>В 8.3.6 точки останова во внеших обработках не работают из-за ошибки платформы</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</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>
<Button name="СписокУдалитьФайлы" id="81">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.УдалитьФайлы</CommandName>
<ExtendedTooltip name="СписокУдалитьФайлыРасширеннаяПодсказка" id="82"/>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</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>
<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>
</Title>
<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>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>
<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>
</Title>
<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.ирКонфигуратор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>
<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>
</Title>
<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>StdPicture.Refresh</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ПрочитатьАктуальныеНастройки</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="ЗагрузитьИзФайла" id="4">
<Title>
<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>
</Title>
<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>
</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>
<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>
</Title>
<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.ирКонфигуратор1С8</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ОткрытьКонфигуратор</Action>
<Representation>TextPicture</Representation>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="УдалитьФайлы" id="6">
<Title>
<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>
</Title>
<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>
<Action>ЗаменитьФайлы</Action>
</Command>
<Command name="ОПодсистеме" id="7">
<Title>
<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>
</Title>
<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>
</Picture>
<Action>ОПодсистеме</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
</Commands>
</Form>

View File

@ -1,301 +0,0 @@

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

View File

@ -1,942 +0,0 @@
#Если Клиент И Не ВебКлиент И Не МобильныйКлиент Тогда
// Вынесено сюда, чтобы у всех пользователей не компилировался тяжелый общий модуль ирОбщий в варианте Расширение
Процедура ОткрытьОднократноАдаптациюРасширенияЛкс(выхПерехватКлавиатуры = Неопределено) Экспорт
Если Ложь
#Если ТонкийКлиент Тогда
Или Не ирСервер.ЛиЕстьИнтерактивныйДоступКИнструментамЛкс() // 30мс
#Иначе
Или Не ПравоДоступа("Просмотр", Метаданные.Подсистемы.ИнструментыРазработчикаTormozit)
#КонецЕсли
Тогда
Возврат;
КонецЕсли;
Если Найти(ПараметрЗапуска, "ОтключитьПерехватКлавиатурыИР") = 0 Тогда
#Если Не ТолстыйКлиентОбычноеПриложение Тогда
//ирОбщий.ПодключитьПерехватКлавиатурыЛкс(выхПерехватКлавиатуры); // Очень долго из-за инициализации всех модулей
СисИнфо = Новый СистемнаяИнформация;
Если СисИнфо.ТипПлатформы = ТипПлатформы.Windows_x86_64 Тогда
Разрядность = "64";
Иначе
Разрядность = "32";
КонецЕсли;
//Успех = ПодключитьВнешнююКомпоненту("Обработка.ирПлатформа.Макет.KeyboardHookZip", "ПерехватКлавиатуры", ТипВнешнейКомпоненты.Native); // На 8.2 работать не будет
Успех = ПодключитьВнешнююКомпоненту("Обработка.ирПлатформа.Макет.KeyboardHookWin" + Разрядность, "ПерехватКлавиатуры", ТипВнешнейКомпоненты.Native); // 0.03сек
Если Не Успех Тогда
#Если ТонкийКлиент Тогда
ирОбщий.ПослеУстановкиKeyboardHook();
#КонецЕсли
КонецЕсли;
Попытка
выхПерехватКлавиатуры = Новый ("AddIn.ПерехватКлавиатуры.KeyboardHook");
Исключение
КонецПопытки;
Если выхПерехватКлавиатуры <> Неопределено Тогда
выхПерехватКлавиатуры.ЗахватПервым = Истина; // Используем не по назначению
выхПерехватКлавиатуры.ЗахватРазрешен = Истина;
выхПерехватКлавиатуры.СобытиеПриНажатии = Истина;
КонецЕсли;
#КонецЕсли
КонецЕсли;
#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда
Если Истина
И ПравоДоступа("Администрирование", Метаданные)
И Метаданные.Справочники.Найти("ирАлгоритмы") = Неопределено
Тогда
// Это вариант поставки Расширение
//ИмяПродуктаЛкс = ирОбщий.ИмяПродуктаЛкс(); // !!! Так при начале каждого сеанса толстого клиента будет компилироваться ирОбщий
ИмяПродуктаЛкс = "ИнструментыРазработчикаTormozit";
ОткрытьАдаптациюИР = Ложь;
ПометкиКоманд = ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПометкиКоманд",, ИмяПродуктаЛкс);
Если ПометкиКоманд = Неопределено Тогда
ПометкиКоманд = Новый Структура;
ХранилищеОбщихНастроек.Сохранить(, "ирАдаптацияРасширения.ПометкиКоманд", ПометкиКоманд,, ИмяПродуктаЛкс);
Если ХранилищеОбщихНастроек.Загрузить(, "ирАдаптацияРасширения.ПометкиКоманд",, ИмяПродуктаЛкс) = Неопределено Тогда
Возврат;
КонецЕсли;
ОткрытьАдаптациюИР = Истина;
КонецЕсли;
Если Найти(НРег(ПараметрЗапуска), НРег("ОткрытьАдаптациюИР")) > 0 Тогда
ОткрытьАдаптациюИР = Истина;
КонецЕсли;
Если ОткрытьАдаптациюИР Тогда
ОткрытьФормуМодально("ОбщаяФорма.ирАдаптацияРасширения", Новый Структура("Автооткрытие", Истина));
КонецЕсли;
// Пример пакетного запуска - /CАдаптироватьРасширениеИР;<ПарольПользователя>
// http://devtool1c.ucoz.ru/forum/3-1695-1
ИмяПараметра = "АдаптироватьРасширениеИР";
Если Найти(НРег(ПараметрЗапуска), НРег(ИмяПараметра)) > 0 Тогда
ПарольПользователя = ирОбщий.СтрокаМеждуМаркерамиЛкс(ПараметрЗапуска, ИмяПараметра + ";", ";");
РезультатАдаптации = ирОбщий.АдаптироватьРасширениеЛкс(ИмяПользователя(), ПарольПользователя);
//Если РезультатАдаптации Тогда
ПрекратитьРаботуСистемы();
Возврат;
//КонецЕсли;
КонецЕсли;
КонецЕсли;
ОбработатьПараметрЗапускаДляВсехРежимовЛкс();
#КонецЕсли
КонецПроцедуры
#КонецЕсли
#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда
// Обертка. Добавляет глобальные переменные и методы в контекст поля текстового документа с контекстной подсказкой.
//
// Параметры
// ПолеТекстаПрограммы - ОбработкаОбъект.ПолеТекстаПрограммы.
//
Процедура ИнициализироватьГлобальныйКонтекстПодсказки(ПолеТекстаПрограммы) Экспорт
ирОбщий.ИнициироватьГлобальныйКонтекстПодсказкиЛкс(ПолеТекстаПрограммы);
КонецПроцедуры // ИнициализироватьГлобальныйКонтекстПодсказки()
Функция ЗначениеПеременнойИзТаблицыЛокальногоКонтекстаЛкс(ИмяПеременной, ТаблицаЛокальногоКонтекста) Экспорт
СтруктураКлюча = Новый Структура("нСлово, ТипСлова", НРег(ИмяПеременной), "Свойство");
НайденныеСтроки = ТаблицаЛокальногоКонтекста.НайтиСтроки(СтруктураКлюча);
Если НайденныеСтроки.Количество() > 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);
Возврат Результат;
КонецФункции // УФ()
#КонецЕсли
//#Область ГлобальныеПортативныеМетоды
#Если Клиент Тогда
Процедура ВнешнееСобытиеЛкс(Источник, Событие, Данные) Экспорт
#Если ТонкийКлиент Тогда
Если Источник = "KeyboardHook" Тогда
КодыКлавиш = ирКэш.КодыКлавишЛкс();
Если Ложь
Или Найти(Данные, КодыКлавиш["CTRL+~"]) = 1
Тогда
АктивноеОкно = АктивноеОкно();
Если АктивноеОкно <> Неопределено Тогда
НавигационнаяСсылка = АктивноеОкно.ПолучитьНавигационнуюСсылку();
КонецЕсли;
ирОбщий.ПроверитьЧтоСеансТолстогоКлиентаЛкс(НавигационнаяСсылка);
КонецЕсли;
КонецЕсли;
#КонецЕсли
#Если Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда
Попытка
Если Истина
И Источник = "KeyboardHook"
И (Ложь
Или ирКэш.ЛиПортативныйРежимЛкс()
Или ПравоДоступа("Просмотр", Метаданные.Подсистемы.ИнструментыРазработчикаTormozit))
Тогда
ПередатьОбработку = Ложь; // Максимально отсрачиваем компиляцию общего модуля ирОбщий
ПерехватКлавиатуры = ирКэш.ПерехватКлавиатурыЛкс();
Если ПерехватКлавиатуры.ЗахватПервым = Истина Тогда // Используем не по назначению
КодыКлавиш = ирКэш.КодыКлавишЛкс();
КлавишиТриггеры = Новый Массив;
КлавишиТриггеры.Добавить("CTRL+~");
КлавишиТриггеры.Добавить("CTRL+C");
КлавишиТриггеры.Добавить("CTRL+V");
Для Каждого КлючКлавиши Из КлавишиТриггеры Цикл
Если Найти(Данные, КодыКлавиш[КлючКлавиши]) = 1 Тогда
ПередатьОбработку = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ПередатьОбработку = Истина;
КонецЕсли;
Если ПередатьОбработку Тогда
ПерехватКлавиатуры.ЗахватПервым = Ложь; // Используем не по назначению
СобытиеОбработано = Ложь;
АктивнаяУправляемаяФорма = ирОбщий.АктивнаяУправляемаяФормаЛкс();
Если АктивнаяУправляемаяФорма = Неопределено Тогда
ирОбщий.УдалитьСсылкиНаЗакрытыеФормыЛкс();
Для Каждого ПроверятьПолеHTML Из ирОбщий.БыстрыйМассивЛкс(Ложь, Истина) Цикл
Для Каждого Форма Из ирКэш.ОткрытыеФормыЛкс() Цикл
СлужебныеДанные = ирОбщий.СлужебныеДанныеФормыЛкс(Форма);
Если ирОбщий.Форма_ВводДоступенЛкс(Форма, ПроверятьПолеHTML) Тогда
СобытиеОбработано = Истина;
Если ирОбщий.ТекущееВремяВМиллисекундахЛкс() - СлужебныеДанные.ДатаОткрытия > 100 Тогда // https://www.hostedredmine.com/issues/892885
Если ирОбщий.МетодРеализованЛкс(Форма, "ВнешнееСобытие") Тогда
Форма.ВнешнееСобытие(Источник, Событие, Данные);
Иначе
ирОбщий.СообщитьЛкс("У формы """ + Форма.Заголовок + """ отсутствует экспортный обработчик ""ВнешнееСобытие""");
КонецЕсли;
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
Если СобытиеОбработано Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не СобытиеОбработано Тогда
ирОбщий.Форма_ВнешнееСобытиеЛкс(, Источник, Событие, Данные);
КонецЕсли;
КонецЕсли;
//Сообщить(Данные); // Отладка
КонецЕсли;
Исключение
// Антибаг платформы https://www.hostedredmine.com/issues/890762
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
#КонецЕсли
КонецПроцедуры
#КонецЕсли
#Если Клиент И Не ТонкийКлиент И Не ВебКлиент И Не МобильныйКлиент Тогда
Процедура ОбработатьПараметрЗапускаДляВсехРежимовЛкс() Экспорт
МаркерОткрытьФорму = "ОткрытьФормуИР.";
Если Найти(ПараметрЗапуска, МаркерОткрытьФорму) > 0 Тогда
ИмяФормы = ирОбщий.СтрокаМеждуМаркерамиЛкс(ПараметрЗапуска, МаркерОткрытьФорму, ";");
Форма = ирОбщий.ПолучитьФормуЛкс(ИмяФормы);
Если Форма <> Неопределено Тогда
Форма.Открыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ ОЖИДАНИЯ
Процедура ОсвободитьВсеИндикаторыПроцессовОтложенноЛкс() Экспорт
ирОбщий.ОсвободитьВсеИндикаторыПроцессовЛкс();
КонецПроцедуры
Процедура СохранитьНастройкиПользователяОтложенноЛкс() Экспорт
СохранитьНастройкиПользователя();
КонецПроцедуры
Процедура ВыполнитьПроверкуСовместимостиКонфигурацииЛкс() Экспорт
//мПлатформа = ирКэш.Получить();
//#Если Сервер И Не Сервер Тогда
// мПлатформа = Обработки.ирПлатформа.Создать();
//#КонецЕсли
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Если ирОбщий.ВосстановитьЗначениеЛкс("ПроверятьПодпискиКонфигурации", Истина) <> Ложь Тогда
ирОбщий.ПроверитьПодпискиЛкс();
КонецЕсли;
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если Истина
И Метаданные.ОсновнойРежимЗапуска = РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение
И Не Метаданные.ИспользоватьУправляемыеФормыВОбычномПриложении
Тогда
Сообщить("Рекомендуется включить в свойствах конфигурации флажок ""Использовать управляемые формы в обычном приложении""");
КонецЕсли;
#КонецЕсли
#КонецЕсли
//#Если ТолстыйКлиентУправляемоеПриложение Тогда
// ирОбщий.ПроверитьФлажокИспользоватьОбычныеФормыВУправляемомПриложенииЛкс();
//#КонецЕсли
//Если Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Английский Тогда
// Сообщить("Подсистема не полностью поддерживает вариант встроенного языка Английский.", СтатусСообщения.Внимание);
//КонецЕсли;
КонецПроцедуры
Процедура ГлобальныйОбработчикОжиданияСПараметрамиЛкс() Экспорт
ирОбщий.ОбработчикОжиданияСПараметрамиЛкс();
КонецПроцедуры
Процедура ПроверитьОтмененныеФоновыеЗаданияОтложенноЛкс() Экспорт
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
Для Каждого Идентификатор Из мПлатформа.ОтмененныеФоновыеЗадания Цикл
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Идентификатор);
Если ФоновоеЗадание <> Неопределено И ФоновоеЗадание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
ирОбщий.СообщитьЛкс("Фоновое задание """ + ФоновоеЗадание.Наименование + """, которому была отправлена команда отмены, продолжает выполняться", СтатусСообщения.Внимание);
КонецЕсли;
КонецЦикла;
мПлатформа.ОтмененныеФоновыеЗадания.Очистить();
КонецПроцедуры
Процедура ОткрытьСтруктуруАктивнойФормыЛкс(Параметры) Экспорт
ТекущаяФорма = Параметры.Форма;
//ТекущаяФорма = ирОбщий.АктивнаяУправляемаяФормаЛкс();
Если ТекущаяФорма <> Неопределено Тогда
ирОбщий.ОткрытьСтруктуруФормыЛкс(ТекущаяФорма);
КонецЕсли;
КонецПроцедуры
Процедура РедактироватьОбъектАктивнойФормыЛкс(Параметры) Экспорт
Форма = Неопределено;
Ссылка = ирОбщий.КлючОсновногоОбъектаУправляемойФормыЛкс(Форма);
Если Ссылка <> Неопределено Тогда
КлючСтроки = Неопределено;
ИмяПоляБД = ирОбщий.НайтиПутьКДаннымПоляТаблицыФормыЛкс(Ссылка, Форма.ТекущийЭлемент.Имя);
Если ТипЗнч(Форма.ТекущийЭлемент) = Тип("ТаблицаФормы") Тогда
ИмяТЧБД = ИмяПоляБД;
ИмяПоляБД = "";
Если Форма.ТекущийЭлемент.ТекущийЭлемент <> Неопределено Тогда
ИмяПоляБД = ирОбщий.ПутьКДаннымКолонкиТабличногоПоляЛкс(Форма.ТекущийЭлемент);
КонецЕсли;
ДанныеТаблицыФормы = ирОбщий.ДанныеЭлементаФормыЛкс(Форма.ТекущийЭлемент);
Если Форма.ТекущийЭлемент.ТекущаяСтрока <> Неопределено И ирОбщий.ЛиДанныеФормыСВозможностьюПоискаЛкс(ДанныеТаблицыФормы) Тогда
КлючСтроки = Новый Структура("НомерСтроки", ДанныеТаблицыФормы.Индекс(ДанныеТаблицыФормы.НайтиПоИдентификатору(Форма.ТекущийЭлемент.ТекущаяСтрока)) + 1);
КонецЕсли;
КонецЕсли;
//Если ПоляТаблицы.Найти(ИмяТЧБД, "Имя") = Неопределено Тогда
// ИмяТЧБД = "";
//КонецЕсли;
//ИмяДочернейТаблицыБД = Ссылка.Метаданные().ПолноеИмя();
//Если ЗначениеЗаполнено(ИмяТЧБД) Тогда
// ИмяДочернейТаблицыБД = ИмяДочернейТаблицыБД + "." + ИмяТЧБД;
//КонецЕсли;
//ПоляТаблицы = ирОбщий.ПоляТаблицыБДЛкс(ИмяДочернейТаблицыБД);
//Если ПоляТаблицы.Найти(ИмяПоляБД, "Имя") = Неопределено Тогда
// ИмяПоляБД = "";
//КонецЕсли;
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(Ссылка,, ИмяТЧБД, ИмяПоляБД, КлючСтроки);
КонецЕсли;
КонецПроцедуры
Процедура КопироватьСсылкуАктивнойФормыЛкс(Параметры) Экспорт
Форма = Неопределено;
Ссылка = ирОбщий.КлючОсновногоОбъектаУправляемойФормыЛкс(Форма);
Если Ссылка <> Неопределено Тогда
ирОбщий.БуферОбмена_УстановитьЗначениеЛкс(Ссылка);
КонецЕсли;
КонецПроцедуры
Процедура РедактироватьОбъектСтрокиАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
Форма = Параметры.Форма;
ирОбщий.КлючиСтрокБДИзТаблицыФормыЛкс(Форма, КлючТекущейСтроки);
Если КлючТекущейСтроки <> Неопределено Тогда
ДанныеКолонки = ирОбщий.ПутьКДаннымКолонкиТабличногоПоляЛкс(Форма.ТекущийЭлемент);
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(КлючТекущейСтроки,,, ДанныеКолонки);
КонецЕсли;
КонецПроцедуры
Процедура РедактироватьОбъектТекущегоПоляАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
ирОбщий.СсылкиИзТекущейКолонкиВыделенныхСтрокТаблицыЛкс(Параметры.Форма, КлючТекущейСтроки);
Если КлючТекущейСтроки <> Неопределено Тогда
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(КлючТекущейСтроки);
КонецЕсли;
КонецПроцедуры
Процедура ОткрытьОбъектТекущегоПоляАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
Ссылки = ирОбщий.СсылкиИзТекущейКолонкиВыделенныхСтрокТаблицыЛкс(Параметры.Форма, КлючТекущейСтроки);
Если КлючТекущейСтроки <> Неопределено Тогда
ирОбщий.ОткрытьЗначениеЛкс(КлючТекущейСтроки);
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьОбъектыАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
ТаблицаФормыДинамическогоСписка = Неопределено;
Ссылки = ирОбщий.КлючиСтрокБДИзТаблицыФормыЛкс(Параметры.Форма, КлючТекущейСтроки, ТаблицаФормыДинамическогоСписка);
Если Ссылки.Количество() > 0 Тогда
Если ТаблицаФормыДинамическогоСписка <> Неопределено Тогда
ирОбщий.ОткрытьПодборИОбработкуОбъектовИзТабличногоПоляДинамическогоСпискаЛкс(ТаблицаФормыДинамическогоСписка,, Ссылки);
Иначе
ирОбщий.ОткрытьМассивОбъектовВПодбореИОбработкеОбъектовЛкс(Ссылки,,,, КлючТекущейСтроки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбработатьОбъектыТекущегоПоляАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
Ссылки = ирОбщий.СсылкиИзТекущейКолонкиВыделенныхСтрокТаблицыЛкс(Параметры.Форма, КлючТекущейСтроки);
Если Ссылки.Количество() > 0 Тогда
ирОбщий.ОткрытьМассивОбъектовВПодбореИОбработкеОбъектовЛкс(Ссылки,,,, КлючТекущейСтроки);
КонецЕсли;
КонецПроцедуры
Процедура ОткрытьТаблицуАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОткрытьТаблицуЗначенийИзАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура ОткрытьТабличныйДокументАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОткрытьТабличныйДокументИзАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура СравнитьТаблицуАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.СравнитьТаблицуИзАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура ОткрытьРазличныеЗначенияКолонкиАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОткрытьРазличныеЗначенияКолонкиАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура УстановитьЗначениеВКолонкеАктивнойФормыЛкс(Параметры) Экспорт
Форма = Параметры.Форма;
ТекущийЭлемент = ирОбщий.ТекущийЭлементАктивнойФормыЛкс(Форма);
Если Истина
И ТипЗнч(ТекущийЭлемент) <> Тип("ТаблицаФормы")
И ТипЗнч(ТекущийЭлемент) <> Тип("ТабличноеПоле")
Тогда
Возврат;
КонецЕсли;
ирОбщий.ОткрытьМенеджерТабличногоПоляЛкс(ТекущийЭлемент, Форма, "Обработка");
КонецПроцедуры
Процедура ОтладитьКомпоновкуДанныхАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОтладитьКомпоновкуДанныхАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура РедактироватьАктивныйСписокЗначенийЛкс(Параметры) Экспорт
ирОбщий.РедактироватьАктивныйСписокЗначенийУправляемыйЛкс(Параметры.Форма);
КонецПроцедуры
Процедура НастроитьДинамическийСписокАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.НастроитьДинамическийСписокАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура ОткрытьДинамическийСписокАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОткрытьДинамическийСписокАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура НайтиВыбратьСсылкуВДинамическомСпискеАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.НайтиВыбратьСсылкуВДинамическомСпискеАктивнойУправляемойФормыЛкс(Параметры.Форма);
КонецПроцедуры
Процедура ОткрытьМенеджерТабличногоПоляАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ОткрытьМенеджерТабличногоПоляЛкс(, Параметры.Форма);
КонецПроцедуры
Процедура СообщитьКоличествоСтрокАктивнойТаблицыЛкс(Параметры) Экспорт
ирОбщий.ТабличноеПолеИлиТаблицаФормы_СколькоСтрокЛкс(Параметры.Форма.ТекущийЭлемент);
КонецПроцедуры
Процедура Сравнить2СтрокиАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.ТабличноеПолеИлиТаблицаФормы_Сравнить2СтрокиЛкс(Параметры.Форма, Параметры.Форма.ТекущийЭлемент);
КонецПроцедуры
Процедура ВставитьСкопированнуюСсылкуАктивнойФормыЛкс(Параметры) Экспорт
ирОбщий.БуферОбмена_ВставитьЛкс(Параметры.Форма);
КонецПроцедуры
Процедура КопироватьСсылкуАктивнойСтрокиАктивнойФормыЛкс(Параметры) Экспорт
КлючТекущейСтроки = Неопределено;
Форма = Параметры.Форма;
ирОбщий.КлючиСтрокБДИзТаблицыФормыЛкс(Форма, КлючТекущейСтроки);
Если КлючТекущейСтроки <> Неопределено Тогда
ирОбщий.БуферОбмена_УстановитьЗначениеЛкс(КлючТекущейСтроки);
КонецЕсли;
КонецПроцедуры
// Антибаг платформы https://www.hostedredmine.com/issues/929519
// 8мс
Процедура ВосстановитьФокусВводаЛкс() Экспорт
ФормаПустышка = ирКэш.ФормаПустышкаЛкс();
ФормаПустышка.Открыть();
ФормаПустышка.Закрыть();
КонецПроцедуры
// Антибаг платформы https://www.hostedredmine.com/issues/926161
Процедура АктивироватьАктивнуюФормуЛкс() Экспорт
АктивнаяФорма = ирОбщий.АктивнаяФормаЛкс();
Если АктивнаяФорма = Неопределено Тогда
Возврат;
КонецЕсли;
ФормаПустышка = ирКэш.ФормаПустышкаЛкс();
ФормаПустышка.Открыть();
ФормаПустышка.Закрыть();
ирОбщий.Форма_АктивироватьОткрытьЛкс(АктивнаяФорма);
КонецПроцедуры
#КонецЕсли
////////////////////////////////////////////////////////////////////////////////
// ОТЛАДКА
// Обертка ирОбщий.ПрЛкс(). Присваивает первому параметру второй.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
//
// Параметры:
// П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 - допустимое количество строк во всех временных таблицах запроса
// для отложенной отладки, больше этого количества строки не сохраняются, о чем сообщается в результате;
// Наименование - Строка - наименование сохраняемого объекта отложенной отладки;
//
// Возвращаемое значение:
// Неопределено.
//
Функция Отладить(Знач Объект, Модально = Ложь, Знач Объект2 = Неопределено, Знач ВнешниеНаборыДанных = Неопределено,
ОтложенноеВыполнение = Ложь, ДопустимоеЧислоСтрокВоВременнойТаблицеОтложеннойОтладки = 500000, Наименование = "") Экспорт
Результат = ирОбщий.ОтладитьЛкс(Объект, Модально, Объект2, ВнешниеНаборыДанных, ОтложенноеВыполнение, ДопустимоеЧислоСтрокВоВременнойТаблицеОтложеннойОтладки,, Наименование);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ОтЛкс(). Открывает или формирует снимок объекта для открытия в соответствующем инструменте.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
// Варианты использования в зависимости от типа параметра Объект:
// Запрос, COMОбъект, HttpСоединение - открывает Запрос или ADODB.Command или ADODB.Connection в консоли запросов
// ПостроительЗапроса - открывает результирующий запрос построителя запросов в консоли запросов
// ПостроительОтчета - открывает построитель отчета в консоли построителей отчетов, откуда можно открыть результирующий запрос построителя отчета в консоли запросов
// СхемаКомпоновки - открывает схему компоновки в консоли компоновки данных, откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов
// МакетКомпоновкиДанных - открытвает запросы макета компоновки в консоли запросов
// ОтчетОбъект - открывает схему и настройки компоновки отчета в консоли компоновки данных, откуда можно открыть результирующие (из макета компоновки) запросы в консоли запросов
// РегистрСведенийНаборЗаписей - открывает группировку таблицы набора записей по измерениям
//
// Параметры:
// Объект Запрос, ПостроительЗапроса, ПостроительОтчета, СхемаКомпоновкиДанных, МакетКомпоновкиДанных, ОтчетОбъект, ADODB.Command, ADODB.Connection, HttpСоединение - исследуемый объект;
// Объект2 - НастройкиКомпоновкиДанных, Строка, *Неопределено -
// если первый параметр СхемаКомпоновкиДанных, то настройки компоновки,
// если первый параметр WMI или ADODB.Connection, то текст запроса,
// если первый параметр HttpСоединение, то HttpЗапрос,
// если первый параметр Запрос, имена временных таблиц разделенных запятыми;
// ВнешниеНаборыДанных - Структура, *Неопределено - внешние наборы данных для схемы компоновки;
// ОтложеннаяОтладка - Булево - на сервере игнорируется (равно Истина), вместо открытия инструмента отладки сразу выполняется помещение
// объектов отладки во временное хранилище;
// Наименование - Строка - наименование сохраняемого объекта отложенной отладки;
//
// Возвращаемое значение:
// Неопределено.
//
Функция От(Знач Объект, Знач Объект2 = Неопределено, Знач ВнешниеНаборыДанных = Неопределено, ОтложеннаяОтладка = Ложь, Наименование = "") Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Пустышка = ПолучитьФорму(Неопределено); // Чтобы использовалась форма именно этого объекта
КонецЕсли;
#КонецЕсли
Результат = ирОбщий.ОтЛкс(Объект, Объект2, ВнешниеНаборыДанных, ОтложеннаяОтладка, Наименование);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
ирПортативный.УсловныйДеструктор();
КонецЕсли;
Возврат Результат;
КонецФункции
// Обертка ирОбщий.ИсследоватьЛкс(). Открывает исследователь объектов.
//
// Параметры:
// Объект Произвольный, *Неопределено - объект, который будет исследован;
// Модально Булево - открывать окно модально;
// КакКоллекцию Булево, *Ложь - исследовать как коллекцию вместо объекта.
//
// Возвращаемое значение:
// Сам объект.
//
Функция Исследовать(Знач Объект = Неопределено, Модально = Ложь, КакКоллекцию = Ложь, ОтложенноеВыполнение = Ложь) Экспорт
Результат = ирОбщий.ИсследоватьЛкс(Объект, Модально, КакКоллекцию, ОтложенноеВыполнение);
Возврат Результат;
КонецФункции // Исследовать()
// Обертка ирОбщий.ИсЛкс(). Открывает или формирует снимок объекта для открытия в исследователе объектов.
// Удобно вызывать из отладчика через диалог "Вычислить выражение".
Функция Ис(Знач Объект = Неопределено, КакКоллекцию = Ложь, ОтложенноеВыполнение = Ложь) Экспорт
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
Пустышка = ПолучитьФорму(Неопределено); // Чтобы использовалась форма именно этого объекта
КонецЕсли;
#КонецЕсли
Результат = ирОбщий.ИсЛкс(Объект, КакКоллекцию, ОтложенноеВыполнение);
Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
ирПортативный.УсловныйДеструктор();
КонецЕсли;
Возврат Результат;
КонецФункции // Ис()
// Обертка ирОбщий.ФайлЛкс(). Возвращает текст из файла
Функция Файл(Знач ИмяФайла, Знач Кодировка = "") Экспорт
Результат = ирОбщий.ФайлЛкс(ИмяФайла, Кодировка);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.СокрКолЛкс(). Удаляет все элементы коллекции кроме заданного или первого.
Функция СокрКол(Коллекция, ОставитьЭлементИлиКлюч = Неопределено) Экспорт
ирОбщий.СокрКолЛкс(Коллекция, ОставитьЭлементИлиКлюч);
КонецФункции
// Обертка ирОбщий.ИзмЛкс(). Проверяет что переданное значение отличается от предыдущего переданного с тем же именем.
// Удобно вызывать из отладчика в качестве условия точки останова.
Функция Изм(Значение, ИмяЗначения = "п", Знач НужноеСтароеЗначение = "фйъх13м9", Знач НужноеНовоеЗначение = "фйъх13м9") Экспорт
Результат = ирОбщий.ИзмЛкс(Значение, ИмяЗначения, НужноеСтароеЗначение, НужноеНовоеЗначение);
Возврат Результат;
КонецФункции
// Обертка ирОбщий.СткЛкс(). Создает из объекта структуру
Функция Стк(Объект) Экспорт
Возврат ирОбщий.СткЛкс(Объект);
КонецФункции
// Обертка ирОбщий.КолЛкс(). Создает из объекта таблицу значений
Функция Кол(Объект) Экспорт
Возврат ирОбщий.КолЛкс(Объект);
КонецФункции
//#КонецОбласти

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +0,0 @@
<?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>
<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>
<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

@ -1,31 +0,0 @@
<?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>
<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>
<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

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

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +0,0 @@
<?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">
<CommonPicture uuid="f2c5114b-7dd8-4bfa-8e6d-03b03be454f8">
<Properties>
<Name>ирRegex101</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ир regex101</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Ир regex101</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Ир regex101</v8:content>
</v8:item>
</Synonym>
<Comment/>
<AvailabilityForChoice>false</AvailabilityForChoice>
<AvailabilityForAppearance>false</AvailabilityForAppearance>
</Properties>
</CommonPicture>
</MetaDataObject>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 B

View File

@ -1,25 +0,0 @@
<?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">
<CommonPicture uuid="b459dbd9-93fb-4f87-93e5-14946ffd1aa9">
<Properties>
<Name>ирВыражение2</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выражение2</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Выражение2</v8:content>
</v8:item>
<v8:item>
<v8:lang>uk</v8:lang>
<v8:content>Выражение2</v8:content>
</v8:item>
</Synonym>
<Comment/>
<AvailabilityForChoice>false</AvailabilityForChoice>
<AvailabilityForAppearance>false</AvailabilityForAppearance>
</Properties>
</CommonPicture>
</MetaDataObject>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -1,25 +0,0 @@
<?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">
<CommonPicture uuid="a92089aa-2179-42a6-97b0-a1d4afb9b100">
<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/>
<AvailabilityForChoice>false</AvailabilityForChoice>
<AvailabilityForAppearance>false</AvailabilityForAppearance>
</Properties>
</CommonPicture>
</MetaDataObject>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@

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

View File

@ -1,620 +0,0 @@
//ирПортативный Перем ирПортативный Экспорт;
//ирПортативный Перем ирОбщий Экспорт;
//ирПортативный Перем ирСервер Экспорт;
//ирПортативный Перем ирКэш Экспорт;
//ирПортативный Перем ирПривилегированный Экспорт;
Перем мАлгоритмПередВыгрузкойПараметры Экспорт;
Функция ПолучитьСписокЗначенийЭлементаОтбора(ПолеОтбора) Экспорт
ВозможныеЗначения = Неопределено;
Если ПолеОтбора = "Уровень" Тогда
ВозможныеЗначения = Новый СписокЗначений;
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Ошибка);
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Предупреждение);
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Информация);
ВозможныеЗначения.Добавить(УровеньЖурналаРегистрации.Примечание);
ИначеЕсли ПолеОтбора = "СтатусТранзакции" Тогда
ВозможныеЗначения = Новый СписокЗначений;
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.Зафиксирована);
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.Отменена);
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.НеЗавершена);
ВозможныеЗначения.Добавить(СтатусТранзакцииЗаписиЖурналаРегистрации.НетТранзакции);
ИначеЕсли Ложь
Или ПолеОтбора = "Пользователь"
Или ПолеОтбора = "Компьютер"
Или ПолеОтбора = "ИмяПриложения"
Или ПолеОтбора = "Событие"
Или ПолеОтбора = "Метаданные"
Или ПолеОтбора = "РабочийСервер"
Или ПолеОтбора = "ОсновнойIPПорт"
Или ПолеОтбора = "ВспомогательныйIPПорт"
Или ПолеОтбора = "РазделениеДанныхСеанса"
Тогда
СтруктураЗначенийОтбора = ПолучитьЗначенияОтбораЖурналаРегистрации(ПолеОтбора, ИмяФайла);
ВозможныеЗначения = СтруктураЗначенийОтбора[ирОбщий.ПеревестиСтроку(ПолеОтбора)];
КонецЕсли;
Если ВозможныеЗначения <> Неопределено Тогда
Если ТипЗнч(ВозможныеЗначения) = Тип("СписокЗначений") Тогда
СписокВыбора = ВозможныеЗначения;
ИначеЕсли ТипЗнч(ВозможныеЗначения) = Тип("Массив") Тогда
СписокВыбора = Новый СписокЗначений;
СписокВыбора.ЗагрузитьЗначения(ВозможныеЗначения);
СписокВыбора.СортироватьПоЗначению();
ИначеЕсли ТипЗнч(ВозможныеЗначения) = Тип("Соответствие") Тогда
СписокВыбора = Новый СписокЗначений;
Для Каждого КлючИЗначение Из ВозможныеЗначения Цикл
ПредставлениеЭлемента = КлючИЗначение.Значение;
Если ПолеОтбора = "Пользователь" И ПредставлениеЭлемента = "" Тогда
ПредставлениеЭлемента = "<Пользователь по умолчанию>";
КонецЕсли;
СписокВыбора.Добавить(КлючИЗначение.Ключ, ПредставлениеЭлемента);
КонецЦикла;
СписокВыбора.СортироватьПоПредставлению();
КонецЕсли;
Иначе
СписокВыбора = Новый СписокЗначений;
КонецЕсли;
Возврат СписокВыбора;
КонецФункции
Функция УстановитьОписаниеТиповЗначенияОтбора(СтрокаОтбора) Экспорт
ПолеОтбора = СтрокаОтбора.Поле;
МетаРеквизит = Метаданные().ТабличныеЧасти.ТаблицаЖурнала.Реквизиты[ПолеОтбора];
БазовоеОписаниеТипов = МетаРеквизит.Тип;
Если Ложь
Или ПолеОтбора = "Уровень"
Или ПолеОтбора = "СтатусТранзакции"
Или ПолеОтбора = "Пользователь"
Или ПолеОтбора = "Компьютер"
Или ПолеОтбора = "ИмяПриложения"
Или ПолеОтбора = "Событие"
Или ПолеОтбора = "Метаданные"
Или ПолеОтбора = "РабочийСервер"
Или ПолеОтбора = "ОсновнойIPПорт"
Или ПолеОтбора = "ВспомогательныйIPПорт"
Или ПолеОтбора = "РазделениеДанныхСеанса"
Тогда
ОписаниеТипов = Новый ОписаниеТипов("СписокЗначений");
ИначеЕсли ПолеОтбора = "Сеанс" Тогда
ОписаниеТипов = Новый ОписаниеТипов(БазовоеОписаниеТипов, "СписокЗначений");
Иначе
ОписаниеТипов = БазовоеОписаниеТипов;
КонецЕсли;
СтрокаОтбора.ОписаниеТипов = ОписаниеТипов;
СтрокаОтбора.Значение = ОписаниеТипов.ПривестиЗначение(СтрокаОтбора.Значение);
СтрокаОтбора.Представление = МетаРеквизит.Представление();
Если МетаРеквизит.Имя = "Данные" Тогда
//СтрокаОтбора.Представление = "Данные (медленно!)";
КонецЕсли;
КонецФункции
Функция ДобавитьЭлементОтбора(Отбор, ПолеОтбора = "Данные", Знач ЗначениеОтбора = Неопределено, ПредставлениеЗначения = Неопределено,
Использование = Неопределено, ОставлятьСтарыеПометки = Истина) Экспорт
Если ПолеОтбора = "Уровень" И ТипЗнч(ЗначениеОтбора) = Тип("Строка") Тогда
ЗначениеОтбора = УровеньЖурналаРегистрации[ЗначениеОтбора];
КонецЕсли;
ДоступныеЗначенияЭлементаОтбора = ПолучитьСписокЗначенийЭлементаОтбора(ПолеОтбора);
СтрокаОтбора = Отбор.Найти(ПолеОтбора);
Если СтрокаОтбора = Неопределено Тогда
СтрокаОтбора = Отбор.Добавить();
СтрокаОтбора.Поле = ПолеОтбора;
СтрокаОтбора.Значение = ДоступныеЗначенияЭлементаОтбора;
КонецЕсли;
УстановитьОписаниеТиповЗначенияОтбора(СтрокаОтбора);
Если Использование <> Неопределено Тогда
ирОбщий.ПрисвоитьЕслиНеРавноЛкс(СтрокаОтбора.Использование, Использование);
КонецЕсли;
Если ТипЗнч(СтрокаОтбора.Значение) = Тип("СписокЗначений") Тогда
СтароеЗначениеОтбора = СтрокаОтбора.Значение;
#Если Сервер И Не Сервер Тогда
СтароеЗначениеОтбора = Новый СписокЗначений;
#КонецЕсли
Если Не ОставлятьСтарыеПометки Тогда
СтароеЗначениеОтбора.ЗаполнитьПометки(Ложь);
КонецЕсли;
Если ТипЗнч(ЗначениеОтбора) <> Тип("СписокЗначений") Тогда
лПустышка = ЗначениеОтбора;
ЗначениеОтбора = Новый СписокЗначений;
Если лПустышка <> Неопределено Тогда
ЗначениеОтбора.Добавить(лПустышка, , Истина);
КонецЕсли;
Иначе
ЗначениеОтбора = ирОбщий.СкопироватьУниверсальнуюКоллекциюЛкс(ЗначениеОтбора);
КонецЕсли;
Для Каждого ДоступноеЗначение Из ДоступныеЗначенияЭлементаОтбора Цикл
ЭлементСписка = ЗначениеОтбора.НайтиПоЗначению(ДоступноеЗначение.Значение);
Если ЭлементСписка = Неопределено Тогда
ЭлементСписка = ЗначениеОтбора.Добавить();
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭлементСписка, ДоступноеЗначение,, "Пометка");
КонецЦикла;
Для Каждого ЭлементСтарогоСписка Из СтароеЗначениеОтбора Цикл
Если Не ЭлементСтарогоСписка.Пометка Тогда
Продолжить;
КонецЕсли;
ЭлементСписка = ЗначениеОтбора.НайтиПоЗначению(ЭлементСтарогоСписка.Значение);
Если ЭлементСписка <> Неопределено Тогда
ЭлементСписка.Пометка = Истина;
КонецЕсли;
КонецЦикла;
ЗначениеОтбора.СортироватьПоПредставлению();
СтрокаОтбора.Значение = ЗначениеОтбора;
Иначе
Если ЗначениеОтбора = Неопределено Тогда
ЗначениеОтбора = СтрокаОтбора.Значение;
КонецЕсли;
СтрокаОтбора.Значение = СтрокаОтбора.ОписаниеТипов.ПривестиЗначение(ЗначениеОтбора);
КонецЕсли;
Возврат СтрокаОтбора;
КонецФункции
Процедура ЗаполнитьОтборВыгрузки() Экспорт
СписокУровнейОтбора = Новый СписокЗначений;
СписокУровнейОтбора.Добавить(УровеньЖурналаРегистрации.Ошибка,, Истина);
СписокУровнейОтбора.Добавить(УровеньЖурналаРегистрации.Предупреждение,, Истина);
ДобавитьЭлементОтбора(Отбор, "Уровень", СписокУровнейОтбора);
ДобавитьЭлементОтбора(Отбор, "Комментарий");
ДобавитьЭлементОтбора(Отбор, "Пользователь");
ДобавитьЭлементОтбора(Отбор, "Событие");
ДобавитьЭлементОтбора(Отбор, "СтатусТранзакции");
ДобавитьЭлементОтбора(Отбор, "ИмяПриложения");
ДобавитьЭлементОтбора(Отбор, "Данные");
ДобавитьЭлементОтбора(Отбор, "Метаданные");
КонецПроцедуры
Функция ПолучитьДанные(НачалоПериода = Неопределено, КонецПериода = Неопределено, СтруктураОтбора = Неопределено, МаксимальныйРазмерВыгрузки = Неопределено) Экспорт
//ЗаполнитьОтборВыгрузки();
Если НачалоПериода <> Неопределено Тогда
ЭтотОбъект.НачалоПериода = НачалоПериода;
Иначе
ЭтотОбъект.НачалоПериода = НачалоДня(ТекущаяДата());
КонецЕсли;
Если КонецПериода <> Неопределено Тогда
ЭтотОбъект.КонецПериода = КонецПериода;
Иначе
ЭтотОбъект.КонецПериода = Неопределено;
КонецЕсли;
Если МаксимальныйРазмерВыгрузки <> Неопределено Тогда
ЭтотОбъект.МаксимальныйРазмерВыгрузки = МаксимальныйРазмерВыгрузки;
КонецЕсли;
Если СтруктураОтбора <> Неопределено Тогда
Для Каждого КлючИЗначение Из СтруктураОтбора Цикл
ДобавитьЭлементОтбора(ЭтотОбъект.Отбор, КлючИЗначение.Ключ, КлючИЗначение.Значение,, Истина);
КонецЦикла;
КонецЕсли;
ЗагрузитьДанныеЖурнала();
Возврат ТаблицаЖурнала;
КонецФункции
Функция ЗагрузитьДанныеЖурнала(ЭтаФорма = Неопределено, Кнопка = Неопределено, ОбработчикЗавершения = Неопределено) Экспорт
Если Ложь
Или Кнопка = Неопределено
Или Кнопка.Картинка <> ирКэш.КартинкаПоИмениЛкс("ирОстановить")
Тогда
Фильтр = ФильтрВыгрузкиЖурнала();
Если Фильтр = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
#Если Сервер И Не Сервер Тогда
Фильтр = Новый Структура;
#КонецЕсли
КонецЕсли;
ИспользованныйВариант = ОписаниеВариантаОтбора(Истина);
#Если Сервер И Не Сервер Тогда
ИспользованныйВариант = Новый Структура;
#КонецЕсли
ИспользованныйВариант.Удалить("АлгоритмПередВыгрузкой");
Если ЗначениеЗаполнено(АлгоритмПередВыгрузкой) Тогда
Попытка
АлгоритмОбъект = ирОбщий.ДесериализоватьАлгоритмОбъектЛкс(АлгоритмПередВыгрузкой);
#Если Сервер И Не Сервер Тогда
АлгоритмОбъект = Обработки.ирИмитаторАлгоритмОбъект.Создать();
#КонецЕсли
Исключение
ВызватьИсключение "Ошибка десериализации алгоритма перед выгрузкой: " + ОписаниеОшибки();
КонецПопытки;
ВнутренниеПараметры = АлгоритмОбъект.Параметры.Выгрузить();
АлгоритмОбъект.Параметры.Загрузить(мАлгоритмПередВыгрузкойПараметры);
ирОбщий.ЗагрузитьВТаблицуЗначенийЛкс(ВнутренниеПараметры, АлгоритмОбъект.Параметры);
ОтборПоДанным = Неопределено;
мПлатформа = ирКэш.Получить();
#Если Сервер И Не Сервер Тогда
мПлатформа = Обработки.ирПлатформа.Создать();
#КонецЕсли
Попытка
мПлатформа.ВыполнитьМетодАлгоритма(АлгоритмОбъект, 0, ОтборПоДанным);
Исключение
ВызватьИсключение "Ошибка выполнения алгоритма перед выгрузкой: " + ОписаниеОшибки();
КонецПопытки;
Если ОтборПоДанным <> Неопределено Тогда
Фильтр.Вставить("Данные", ОтборПоДанным);
КонецЕсли;
КонецЕсли;
ПредставлениеОтбора = ПредставлениеВариантаОтбора(ИспользованныйВариант);
РазрешитьАсинхронно = Не ЗначениеЗаполнено(ИмяФайла);
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("Фильтр", Фильтр);
ПараметрыЗадания.Вставить("ПредставлениеОтбора", ПредставлениеОтбора);
#Если Сервер И Не Сервер Тогда
ВыгрузитьЖурналРегистрацииЛкс();
#КонецЕсли
Если ЭтаФорма <> Неопределено Тогда
ЭтаФормаИлиОбработка = ЭтаФорма;
Иначе
ЭтаФормаИлиОбработка = ЭтотОбъект;
КонецЕсли;
Результат = ирОбщий.ВыполнитьЗаданиеФормыЛкс("ВыгрузитьЖурналРегистрацииЛкс", ПараметрыЗадания, ЭтаФормаИлиОбработка, "ВыгрузитьЖурналРегистрации", "Выгрузка. Отбор - " + ПредставлениеОтбора,
Кнопка, ОбработчикЗавершения, РазрешитьАсинхронно);
Если ЭтаФорма = Неопределено Тогда
ЭтотОбъект.ТаблицаЗначенийЖурнала = Результат.ТаблицаЗначенийЖурнала;
ТаблицаЖурнала.Загрузить(Результат.ТаблицаЗначенийЖурнала);
КонецЕсли;
КонецФункции
Функция РеквизитыДляСервера(Параметры) Экспорт
Результат = ирОбщий.РеквизитыОбработкиЛкс(ЭтотОбъект);
Возврат Результат;
КонецФункции
Функция ВыгрузитьЖурналРегистрацииЛкс(Параметры) Экспорт
Фильтр = Параметры.Фильтр;
Если Фильтр.Свойство("Данные") Тогда
// Антибаг платформы 8.3.8-14 https://partners.v8.1c.ru/forum/t/1807905/m/1807905
МаксимальныйРазмерВыгрузкиТекущий = 0;
Иначе
МаксимальныйРазмерВыгрузкиТекущий = МаксимальныйРазмерВыгрузки;
КонецЕсли;
Если Фильтр.Свойство("Метаданные") И ТипЗнч(Фильтр.Метаданные) = Тип("Массив") Тогда
// Антибаг платформы 8.3.8-14 https://partners.v8.1c.ru/forum/topic/1988645, https://www.hostedredmine.com/issues/925192
Для Индекс = 0 По Фильтр.Метаданные.ВГраница() Цикл
ЗначениеОтбора = Фильтр.Метаданные[Индекс];
Если Истина
И ТипЗнч(ЗначениеОтбора) = Тип("Строка")
И ирОбщий.ЛиКорневойТипВнешнегоИсточникаДанныхЛкс(ирОбщий.ПервыйФрагментЛкс(ЗначениеОтбора))
Тогда
ОбъектМД = ирОбщий.ОбъектМДПоПолномуИмениЛкс(ЗначениеОтбора);
Если ОбъектМД <> Неопределено Тогда
Фильтр.Метаданные[Индекс] = ОбъектМД;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если АнализироватьТранзакцииСУчастиемОбъекта Тогда
#Если Клиент Тогда
Состояние("Анализ транзакций журнала...");
#КонецЕсли
ЭтотОбъект.ТаблицаЗначенийЖурнала = Новый ТаблицаЗначений;
ТаблицаТранзакций = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(ТаблицаТранзакций, Фильтр,, ИмяФайла, МаксимальныйРазмерВыгрузкиТекущий);
ТаблицаТранзакций.Свернуть("Транзакция");
ТаблицаТранзакций.Сортировать("Транзакция");
Транзакции = ТаблицаТранзакций.ВыгрузитьКолонку("Транзакция");
Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(Транзакции.Количество(), "Выгрузка журнала по транзакциям");
ФильтрТранзакции = ирОбщий.СкопироватьУниверсальнуюКоллекциюЛкс(Фильтр);
Для Каждого Транзакция Из Транзакции Цикл
ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
//ФильтрТранзакции.Вставить("Транзакция", ирОбщий.СтрокаМеждуМаркерамиЛкс(Транзакция, "(",")"));
ФильтрТранзакции.Вставить("Транзакция", Транзакция);
Если Транзакция <> "" Тогда
ФильтрТранзакции.Удалить("Данные");
КонецЕсли;
ТаблицаТранзакции = Новый ТаблицаЗначений;
Если МаксимальныйРазмерВыгрузкиТекущий > 0 Тогда
МаксимальныйРазмерВыгрузкиТекущий = МаксимальныйРазмерВыгрузкиТекущий - ТаблицаЗначенийЖурнала.Количество();
КонецЕсли;
ВыгрузитьЖурналРегистрации(ТаблицаТранзакции, ФильтрТранзакции,, ИмяФайла, МаксимальныйРазмерВыгрузкиТекущий);
Если Транзакция = "" Тогда
ТаблицаТранзакции = ТаблицаТранзакции.Скопировать(Новый Структура("Транзакция", ""));
КонецЕсли;
ТаблицаТранзакции.Колонки.Добавить("ПорядокСтроки", Новый ОписаниеТипов("Число"));
Для Счетчик = 1 По ТаблицаТранзакции.Количество() Цикл
ТаблицаТранзакции[Счетчик - 1].ПорядокСтроки = ТаблицаЗначенийЖурнала.Количество() + Счетчик;
КонецЦикла;
Если ТаблицаЗначенийЖурнала.Колонки.Количество() = 0 Тогда
ТаблицаЗначенийЖурнала = ТаблицаТранзакции;
ТаблицаЗначенийЖурнала.Колонки.Добавить("ДлительностьТранзакции", Новый ОписаниеТипов("Число"));
Иначе
СвойстваТранзакции = Новый Структура("ДлительностьТранзакции", ТаблицаТранзакции[ТаблицаТранзакции.Количество() - 1].Дата - ТаблицаТранзакции[0].Дата);
ирОбщий.ЗагрузитьВТаблицуЗначенийЛкс(ТаблицаТранзакции, ТаблицаЗначенийЖурнала, СвойстваТранзакции);
КонецЕсли;
Если МаксимальныйРазмерВыгрузкиТекущий > 0 И ТаблицаЗначенийЖурнала.Количество() >= МаксимальныйРазмерВыгрузкиТекущий Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
Иначе
ТаблицаЗначенийЖурнала = Новый ТаблицаЗначений;
ирОбщий.СостояниеЛкс("Выгрузка журнала регистрации");
ВыгрузитьЖурналРегистрации(ТаблицаЗначенийЖурнала, Фильтр,, ИмяФайла, МаксимальныйРазмерВыгрузкиТекущий);
ирОбщий.СостояниеЛкс("");
КонецЕсли;
#Если Сервер И Не Сервер Тогда
ТаблицаЗначенийЖурнала = Новый ТаблицаЗначений;
#КонецЕсли
Если ТаблицаЗначенийЖурнала.Колонки.Найти("ПорядокСтроки") = Неопределено Тогда
ТаблицаЗначенийЖурнала.Колонки.Добавить("ПорядокСтроки", Новый ОписаниеТипов("Число"));
Для Счетчик = 1 По ТаблицаЗначенийЖурнала.Количество() Цикл
ТаблицаЗначенийЖурнала[Счетчик - 1].ПорядокСтроки = Счетчик;
КонецЦикла;
КонецЕсли;
ТаблицаЗначенийЖурнала.Индексы.Добавить("ПорядокСтроки");
ТаблицаЗначенийЖурнала.Сортировать("ПорядокСтроки");
ирОбщий.ПеревестиКолонкиВыгрузитьЖурналРегистрацииЛкс(ТаблицаЗначенийЖурнала);
РеквизитыДляРезультата = "АнализироватьТранзакцииСУчастиемОбъекта";
ПараметрыДляРезультата = "ПредставлениеОтбора";
Результат = Новый Структура(РеквизитыДляРезультата + ", " + ПараметрыДляРезультата);
ЗаполнитьЗначенияСвойств(Результат, ЭтотОбъект, РеквизитыДляРезультата);
ЗаполнитьЗначенияСвойств(Результат, Параметры, ПараметрыДляРезультата);
Результат.Вставить("ТаблицаЗначенийЖурнала", ТаблицаЗначенийЖурнала);
Возврат Результат;
КонецФункции
Функция ОписаниеВариантаОтбора(Полное = Ложь) Экспорт
Результат = Новый Структура;
Если Полное Или ЗначениеЗаполнено(КонецПериода) Тогда
Результат.Вставить("НачалоПериода", НачалоПериода);
Результат.Вставить("КонецПериода", КонецПериода);
КонецЕсли;
Результат.Вставить("МаксимальныйРазмерВыгрузки", МаксимальныйРазмерВыгрузки);
Результат.Вставить("Отбор", Отбор);
Результат.Вставить("АлгоритмПередВыгрузкой", АлгоритмПередВыгрузкой);
Возврат Результат;
КонецФункции
Функция ПредставлениеВариантаОтбора(Знач СохраняемыйВариант) Экспорт
ИмяВарианта = "";
Если СохраняемыйВариант.Свойство("НачалоПериода") И ЗначениеЗаполнено(СохраняемыйВариант.НачалоПериода) Тогда
ИмяВарианта = ИмяВарианта + " С " + СохраняемыйВариант.НачалоПериода;
КонецЕсли;
Если СохраняемыйВариант.Свойство("КонецПериода") И ЗначениеЗаполнено(СохраняемыйВариант.КонецПериода) Тогда
ИмяВарианта = ИмяВарианта + " По " + СохраняемыйВариант.КонецПериода;
КонецЕсли;
Если ЗначениеЗаполнено(СохраняемыйВариант.МаксимальныйРазмерВыгрузки) Тогда
ИмяВарианта = ИмяВарианта + "; Количество <= " + СохраняемыйВариант.МаксимальныйРазмерВыгрузки;
КонецЕсли;
Для Каждого СтрокаОтбора Из СохраняемыйВариант.Отбор Цикл
ИспользованиеСтрокиОтбора = ИспользованиеСтрокиОтбора(СтрокаОтбора);
Если ТипЗнч(СтрокаОтбора.Значение) = Тип("СписокЗначений") И СтрокаОтбора.Значение.ТипЗначения.Типы().Количество() = 0 Тогда
ПредставлениеСтрокиОтбора = ПредставлениеСтрокиОтбора(СтрокаОтбора,, 3);
ИспользованиеСтрокиОтбора = ИспользованиеСтрокиОтбора И ЗначениеЗаполнено(ПредставлениеСтрокиОтбора);
Иначе
ПредставлениеСтрокиОтбора = "" + СтрокаОтбора.Значение;
КонецЕсли;
Если ИспользованиеСтрокиОтбора Тогда
ИмяВарианта = ИмяВарианта + "; " + СтрокаОтбора.Представление + " = " + ПредставлениеСтрокиОтбора;
КонецЕсли;
КонецЦикла;
Если Лев(ИмяВарианта, 1) = ";" Тогда
ИмяВарианта = Сред(ИмяВарианта, 3);
КонецЕсли;
Если Не ЗначениеЗаполнено(ИмяВарианта) Тогда
ИмяВарианта = "Нет";
КонецЕсли;
Возврат ИмяВарианта;
КонецФункции
Функция ПредставлениеСтрокиОтбора(Знач ДанныеСтроки, выхКоличествоПомеченных = 0, МаксЭлементов = 20) Экспорт
Результат = "";
Если ДанныеСтроки.Значение <> Неопределено Тогда
выхКоличествоПомеченных = 0;
Для Каждого ЭлементСписка Из ДанныеСтроки.Значение Цикл
Если ЭлементСписка.Пометка Тогда
выхКоличествоПомеченных = выхКоличествоПомеченных + 1;
Если выхКоличествоПомеченных < МаксЭлементов Тогда
Если Результат <> "" Тогда
Результат = Результат + "; ";
КонецЕсли;
ПредставлениеЭлемента = ЭлементСписка.Представление;
Если Не ЗначениеЗаполнено(ПредставлениеЭлемента) Тогда
ПредставлениеЭлемента = ЭлементСписка.Значение;
КонецЕсли;
Результат = Результат + ПредставлениеЭлемента;
ИначеЕсли выхКоличествоПомеченных = МаксЭлементов Тогда
Результат = Результат + "...";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Результат;
КонецФункции
Функция ИспользованиеСтрокиОтбора(Знач СтрокаОтбора) Экспорт
ИспользованиеСтрокиОтбора = СтрокаОтбора.Использование;
Если ИспользованиеСтрокиОтбора Тогда
Если СтрокаОтбора.Поле = "Данные" Тогда
ИспользованиеСтрокиОтбора = СтрокаОтбора.Значение <> Неопределено;
ИначеЕсли ТипЗнч(СтрокаОтбора.Значение) = Тип("Строка") Тогда
ИспользованиеСтрокиОтбора = ЗначениеЗаполнено(СтрокаОтбора.Значение);
КонецЕсли;
КонецЕсли;
Возврат ИспользованиеСтрокиОтбора;
КонецФункции
Функция ФильтрВыгрузкиЖурнала()
Фильтр = Новый Структура;
Если ЗначениеЗаполнено(НачалоПериода) Тогда
Фильтр.Вставить("ДатаНачала", НачалоПериода);
КонецЕсли;
Если ЗначениеЗаполнено(КонецПериода) Тогда
Фильтр.Вставить("ДатаОкончания", КонецПериода);
КонецЕсли;
Если ЗначениеЗаполнено(НачалоПериода) И ЗначениеЗаполнено(КонецПериода) И НачалоПериода > КонецПериода Тогда
ирОбщий.СообщитьЛкс("Конец периода меньше начала периода", СтатусСообщения.Важное);
Возврат Неопределено;
КонецЕсли;
Для Каждого СтрокаОтбора Из Отбор Цикл
ЗначениеОтбора = СтрокаОтбора.Значение;
Если Истина
И ЗначениеОтбора = Неопределено
И СтрокаОтбора.Поле <> "Данные"
Тогда
СтрокаОтбора.Использование = Ложь;
КонецЕсли;
Если Не СтрокаОтбора.Использование Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(ЗначениеОтбора) = Тип("СписокЗначений") Тогда
Если ЗначениеОтбора.ТипЗначения.Типы().Количество() = 0 Тогда
СписокЗначенийЛ = ЗначениеОтбора;
ЗначениеОтбора = Новый Массив();
Для Каждого ЭлементСписка Из СписокЗначенийЛ Цикл
Если ЭлементСписка.Пометка Тогда
Если СтрокаОтбора.Поле = "Пользователь" Тогда
ЗначениеЭлемента = ЭлементСписка.Представление;
Иначе
ЗначениеЭлемента = ЭлементСписка.Значение;
КонецЕсли;
ЗначениеОтбора.Добавить(ЗначениеЭлемента);
КонецЕсли;
КонецЦикла;
Иначе
ЗначениеОтбора = ЗначениеОтбора.ВыгрузитьЗначения();
КонецЕсли;
КонецЕсли;
Фильтр.Вставить(СтрокаОтбора.Поле, ЗначениеОтбора);
КонецЦикла;
Возврат Фильтр;
КонецФункции
#Если Клиент Тогда
Функция ВыбратьОбъектМетаданных(СтрокаТаблицыЗначений) Экспорт
СвойствоМетаданные = СтрокаТаблицыЗначений.Метаданные;
СвойствоДанные = СтрокаТаблицыЗначений.Данные;
Если ТипЗнч(СвойствоМетаданные) = Тип("Массив") Тогда
Если СвойствоМетаданные.Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
Если СвойствоМетаданные.Количество() = 1 Тогда
ПолноеИмяМД = СвойствоМетаданные[0];
Иначе
СписокВыбора = Новый СписокЗначений;
СписокВыбора.ЗагрузитьЗначения(СвойствоМетаданные);
СписокВыбора.СортироватьПоЗначению();
РезультатВыбора = СписокВыбора.ВыбратьЭлемент("Выберите объект метаданных");
Если РезультатВыбора = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
ПолноеИмяМД = РезультатВыбора.Значение;
КонецЕсли;
Иначе
ПолноеИмяМД = СвойствоМетаданные;
КонецЕсли;
Возврат ПолноеИмяМД;
КонецФункции
Функция ОткрытьСПараметром(ПолеОтбора = "Данные", ЗначениеОтбора, ПредставлениеЗначения = Неопределено) Экспорт
Форма = ПолучитьФорму(,, ЗначениеОтбора);
Форма.Открыть();
Форма.Отбор.ЗаполнитьЗначения(Ложь, "Использование");
Форма.НачалоПериода = НачалоДня(ТекущаяДата());
Форма.КонецПериода = Неопределено;
ДобавитьЭлементОтбора(Форма.Отбор, ПолеОтбора, ЗначениеОтбора, ПредставлениеЗначения, Истина);
Ответ = Вопрос("Сразу выполнить выгрузку с текущим отбором?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.ОК Тогда
Форма.ОбновитьТаблицуЖурнала();
КонецЕсли;
Возврат Форма;
КонецФункции
Функция ОткрытьДляФайла(ИмяФайла) Экспорт
Форма = ПолучитьФорму(,, ИмяФайла);
Форма.ИмяФайла = ИмяФайла;
Форма.Открыть();
Возврат Форма;
КонецФункции
Функция ОткрытьСОтбором(НачалоПериода = Неопределено, КонецПериода = Неопределено, СтруктураОтбора = Неопределено, МаксимальныйРазмерВыгрузки = Неопределено) Экспорт
Форма = ПолучитьФорму(,,);
Форма.Открыть();
Форма.Отбор.ЗаполнитьЗначения(Ложь, "Использование");
Если НачалоПериода <> Неопределено Тогда
Форма.НачалоПериода = НачалоПериода;
Иначе
Форма.НачалоПериода = НачалоДня(ТекущаяДата());
КонецЕсли;
Если КонецПериода <> Неопределено Тогда
Форма.КонецПериода = КонецПериода;
Иначе
Форма.КонецПериода = Неопределено;
КонецЕсли;
Если МаксимальныйРазмерВыгрузки <> Неопределено Тогда
Форма.МаксимальныйРазмерВыгрузки = МаксимальныйРазмерВыгрузки;
КонецЕсли;
Если СтруктураОтбора <> Неопределено Тогда
Для Каждого КлючИЗначение Из СтруктураОтбора Цикл
ЗначениеОтбора = КлючИЗначение.Значение;
Если КлючИЗначение.Ключ = "Пользователь" И ТипЗнч(ЗначениеОтбора) = Тип("Строка") Тогда
ПараметрПользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ЗначениеОтбора);
Если ПараметрПользователь <> Неопределено Тогда
ЗначениеОтбора = ПараметрПользователь.УникальныйИдентификатор;
КонецЕсли;
КонецЕсли;
ДобавитьЭлементОтбора(Форма.Отбор, КлючИЗначение.Ключ, ЗначениеОтбора,, Истина);
КонецЦикла;
КонецЕсли;
Ответ = Вопрос("Сразу выполнить выгрузку с текущим отбором?", РежимДиалогаВопрос.ОКОтмена);
Если Ответ = КодВозвратаДиалога.ОК Тогда
Форма.ОбновитьТаблицуЖурнала();
КонецЕсли;
Возврат Форма;
КонецФункции
#КонецЕсли
//ирПортативный лФайл = Новый Файл(ИспользуемоеИмяФайла);
//ирПортативный ПолноеИмяФайлаБазовогоМодуля = Лев(лФайл.Путь, СтрДлина(лФайл.Путь) - СтрДлина("Модули\")) + "ирПортативный.epf";
//ирПортативный #Если Клиент Тогда
//ирПортативный Контейнер = Новый Структура();
//ирПортативный Оповестить("ирПолучитьБазовуюФорму", Контейнер);
//ирПортативный Если Не Контейнер.Свойство("ирПортативный", ирПортативный) Тогда
//ирПортативный ирПортативный = ВнешниеОбработки.ПолучитьФорму(ПолноеИмяФайлаБазовогоМодуля);
//ирПортативный ирПортативный.Открыть();
//ирПортативный КонецЕсли;
//ирПортативный #Иначе
//ирПортативный ирПортативный = ВнешниеОбработки.Создать(ПолноеИмяФайлаБазовогоМодуля, Ложь); // Это будет второй экземпляр объекта
//ирПортативный #КонецЕсли
//ирПортативный ирОбщий = ирПортативный.ПолучитьОбщийМодульЛкс("ирОбщий");
//ирПортативный ирКэш = ирПортативный.ПолучитьОбщийМодульЛкс("ирКэш");
//ирПортативный ирСервер = ирПортативный.ПолучитьОбщийМодульЛкс("ирСервер");
//ирПортативный ирПривилегированный = ирПортативный.ПолучитьОбщийМодульЛкс("ирПривилегированный");
Отбор.Колонки.Добавить("Использование", Новый ОписаниеТипов("Булево"));
Отбор.Колонки.Добавить("Поле", Новый ОписаниеТипов("Строка"));
Отбор.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Отбор.Колонки.Добавить("ОписаниеТипов", Новый ОписаниеТипов("ОписаниеТипов"));
Отбор.Колонки.Добавить("Значение");
ЭтотОбъект.МаксимальныйРазмерВыгрузки = 1000;

View File

@ -1,163 +0,0 @@

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

View File

@ -1,673 +0,0 @@
Перем МассивУровнейЖурнала;
Перем СтруктураКолонокБезОтбора;
Перем СтарыйОтбор;
Функция СохраняемаяНастройкаФормы(выхНаименование, выхИменаСвойств) Экспорт
НастройкаФормы = ирОбщий.КопияОбъектаЛкс(ОписаниеВариантаОтбора());
выхНаименование = ПредставлениеВариантаОтбора(НастройкаФормы);
Возврат НастройкаФормы;
КонецФункции
Процедура ЗагрузитьНастройкуВФорме(НастройкаФормы, ДопПараметры) Экспорт
Если НастройкаФормы.Свойство("НачалоПериода") Тогда
ЭтотОбъект.НачалоПериода = НастройкаФормы.НачалоПериода;
ЭтотОбъект.КонецПериода = НастройкаФормы.КонецПериода;
КонецЕсли;
ЭтотОбъект.МаксимальныйРазмерВыгрузки = НастройкаФормы.МаксимальныйРазмерВыгрузки;
Если НастройкаФормы.Свойство("АлгоритмПередВыгрузкой") Тогда
ЭтотОбъект.АлгоритмПередВыгрузкой = НастройкаФормы.АлгоритмПередВыгрузкой;
КонецЕсли;
Отбор.Очистить();
ирОбщий.ЗагрузитьВТаблицуЗначенийЛкс(НастройкаФормы.Отбор, Отбор);
НастроитьЭлементыФормы();
КонецПроцедуры
Процедура КнопкаВыбораПериодаНажатие(Элемент)
НастройкаПериода = Новый НастройкаПериода;
НастройкаПериода.УстановитьПериод(НачалоПериода, ?(КонецПериода='0001-01-01', КонецПериода, КонецДня(КонецПериода)));
НастройкаПериода.РедактироватьКакИнтервал = Истина;
НастройкаПериода.РедактироватьКакПериод = Истина;
НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
Если НастройкаПериода.Редактировать() Тогда
НачалоПериода = НастройкаПериода.ПолучитьДатуНачала();
КонецПериода = НастройкаПериода.ПолучитьДатуОкончания();
КонецЕсли;
КонецПроцедуры
Процедура ТаблицаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ВыбраннаяСтрока.ПорядокСтроки, "ПорядокСтроки");
//ирОбщий.ЯчейкаТабличногоПоляРасширенногоЗначения_ВыборЛкс(ЭтаФорма, Элемент, СтандартнаяОбработка, СтрокаТаблицыЗначений[Колонка.Данные]);
ФормаСобытия = ПолучитьФорму("ФормаСобытия",, ВыбраннаяСтрока.ПорядокСтроки);
ФормаСобытия.НачальноеЗначениеВыбора = ВыбраннаяСтрока;
ФормаСобытия.СтрокаТаблицыЗначений = СтрокаТаблицыЗначений;
ФормаСобытия.Открыть();
КонецПроцедуры
Процедура ОбновитьТаблицуЖурнала() Экспорт
#Если Сервер И Не Сервер Тогда
ЗагрузитьДанныеЖурналаЗавершить();
#КонецЕсли
ЗагрузитьДанныеЖурнала(ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Обновить, "ЗагрузитьДанныеЖурналаЗавершить");
КонецПроцедуры
// Предопределеный метод
Процедура ПроверкаЗавершенияФоновыхЗаданий() Экспорт
ирОбщий.ПроверитьЗавершениеФоновыхЗаданийФормыЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ЗагрузитьДанныеЖурналаЗавершить(СостояниеЗадания = Неопределено, РезультатЗадания = Неопределено) Экспорт
Если Ложь
Или СостояниеЗадания = Неопределено
Или СостояниеЗадания = СостояниеФоновогоЗадания.Завершено
Тогда
ирОбщий.СостояниеЛкс("Загрузка выгрузки журнала регистрации");
Если ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока <> Неопределено Тогда
КлючТекущейСтроки = Новый Структура();
Для Каждого Колонка Из Метаданные().ТабличныеЧасти.ТаблицаЖурнала.Реквизиты Цикл
Если Колонка.Имя = "ПорядокСтроки" Тогда
Продолжить;
КонецЕсли;
КлючТекущейСтроки.Вставить(Колонка.Имя, ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока[Колонка.Имя]);
КонецЦикла;
КонецЕсли;
Если ЗначениеЗаполнено(СостояниеЗадания) Тогда
ЭтотОбъект.ТаблицаЗначенийЖурнала = РезультатЗадания.ТаблицаЗначенийЖурнала;
КонецЕсли;
ТаблицаЖурнала.Загрузить(ТаблицаЗначенийЖурнала);
ЭлементыФормы.ТаблицаЖурнала.Колонки.РазделениеДанныхСеанса.Видимость = ТаблицаЗначенийЖурнала.Колонки.Найти("РазделениеДанныхСеанса") <> Неопределено;
ТекущаяСтрокаУстановлена = Ложь;
Если КлючТекущейСтроки <> Неопределено Тогда
НайденныеСтроки = ТаблицаЖурнала.НайтиСтроки(КлючТекущейСтроки);
Если НайденныеСтроки.Количество() > 0 Тогда
ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока = НайденныеСтроки[0];
ТекущаяСтрокаУстановлена = Истина;
КонецЕсли;
КонецЕсли;
Если Не ТекущаяСтрокаУстановлена Тогда
Если ТаблицаЖурнала.Количество() > 0 Тогда
ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока = ТаблицаЖурнала[ТаблицаЖурнала.Количество() - 1];
КонецЕсли;
КонецЕсли;
ЭлементыФормы.ТаблицаЖурнала.Колонки.ДлительностьТранзакции.Видимость = РезультатЗадания.АнализироватьТранзакцииСУчастиемОбъекта;
ЭтотОбъект.КоличествоСтрокЖурнала = ТаблицаЖурнала.Количество();
Если МаксимальныйРазмерВыгрузки > 0 И МаксимальныйРазмерВыгрузки = ТаблицаЖурнала.Количество() Тогда
ирОбщий.СообщитьЛкс("Выгрузка прервана по максимально допустимому количеству сообщений");
КонецЕсли;
ДлительностьСекунд = ТекущаяДата() - РезультатЗадания.НачалоЗадания;
ДлительностьСтрока = ирОбщий.ПредставлениеДлительностиЛкс(ДлительностьСекунд);
Если ВыводитьДлительностьВыгрузки Или ДлительностьСекунд > 5 Тогда
ирОбщий.СообщитьЛкс("Выгрузка данных журнала завершена через " + ДлительностьСтрока + ". Отбор - " + РезультатЗадания.ПредставлениеОтбора);
КонецЕсли;
ирОбщий.СостояниеЛкс("");
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииОбновить(Кнопка)
ОбновитьТаблицуЖурнала();
КонецПроцедуры
Процедура ОтборПередНачаломДобавления(Элемент, Отказ, Копирование)
Отказ = Истина;
Если Копирование Тогда
Возврат;
КонецЕсли;
СписокВыбора = Новый СписокЗначений;
Для Каждого Колонка Из Метаданные().ТабличныеЧасти.ТаблицаЖурнала.Реквизиты Цикл
Если Ложь
Или Отбор.Найти(Колонка.Имя, "Поле") <> Неопределено
Или СтруктураКолонокБезОтбора.Свойство(Колонка.Имя)
Тогда
Продолжить;
КонецЕсли;
СписокВыбора.Добавить(Колонка.Имя, Колонка.Представление());
КонецЦикла;
СписокВыбора.СортироватьПоЗначению();
РезультатВыбора = СписокВыбора.ВыбратьЭлемент();
Если РезультатВыбора <> Неопределено Тогда
ПолеОтбора = РезультатВыбора.Значение;
ТекущаяСтрока = ДобавитьЭлементОтбора(Отбор, ПолеОтбора);
Элемент.ТекущаяСтрока = ТекущаяСтрока;
//Элемент.ИзменитьСтроку();
//ОтборЗначениеНачалоВыбора();
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
ирОбщий.СоздатьМенеджерСохраненияНастроекФормыЛкс(ЭтаФорма);
мАлгоритмПередВыгрузкойПараметры = ирОбщий.ТаблицаЗначенийИзТабличногоДокументаЛкс(ПолучитьМакет("АлгоритмПередВыгрузкой"),,,, Истина);
Если НЕ ЗначениеЗаполнено(НачалоПериода) Тогда
НачалоПериода = НачалоДня(ТекущаяДата());
КонецЕсли;
ДействияФормыОткрытьФайлЖурнала();
ОбновитьПодменюПоследнихОтборов();
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ОтборЗначениеПриИзменении(Элемент)
ТекущаяСтрока = ЭлементыФормы.Отбор.ТекущаяСтрока;
ПолеОтбора = ТекущаяСтрока.Поле;
БазовоеОписаниеТипов = Метаданные().ТабличныеЧасти.ТаблицаЖурнала.Реквизиты[ПолеОтбора].Тип;
ТекущаяСтрока.Использование = Истина;
Если ТипЗнч(ТекущаяСтрока.Значение) = Тип("СписокЗначений") Тогда
Если ПолеОтбора = "Сеанс" Тогда
ТекущаяСтрока.Значение.ТипЗначения = БазовоеОписаниеТипов;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ВыбратьДатуИзСписка(Элемент, СтандартнаяОбработка, Знач ПарнаяДата, Знак)
СимволЗнака = ?(Знак = 1, "+", "-");
ИмяПарнойДаты = ?(Знак = 1, "Начало", "Конец");
СписокВыбора = Новый СписокЗначений;
СписокВыбора.Добавить(1*60, ИмяПарнойДаты + " " + СимволЗнака + " 1 минута");
СписокВыбора.Добавить(10*60, ИмяПарнойДаты + " " + СимволЗнака + " 10 минут");
СписокВыбора.Добавить(2*60*60, ИмяПарнойДаты + " " + СимволЗнака + " 2 часа");
СписокВыбора.Добавить(1*24*60*60, ИмяПарнойДаты + " " + СимволЗнака + " 1 день");
СписокВыбора.Добавить(7*24*60*60, ИмяПарнойДаты + " " + СимволЗнака + " 7 дней");
СписокВыбора.Добавить(30*24*60*60, ИмяПарнойДаты + " " + СимволЗнака + " 30 дней");
РезультатВыбора = ЭтаФорма.ВыбратьИзСписка(СписокВыбора, Элемент);
Если РезультатВыбора <> Неопределено Тогда
Если Знак = -1 Тогда
Если Не ЗначениеЗаполнено(ПарнаяДата) Тогда
ПарнаяДата = ТекущаяДата();
КонецЕсли;
КонецЕсли;
Элемент.Значение = ПарнаяДата + Знак * РезультатВыбора.Значение;
КонецЕсли;
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Процедура КонецПериодаНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ВыбратьДатуИзСписка(Элемент, СтандартнаяОбработка, НачалоПериода, 1);
КонецПроцедуры
Процедура НачалоПериодаНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ВыбратьДатуИзСписка(Элемент, СтандартнаяОбработка, КонецПериода, -1);
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииНастроитьРегистрациюСобытия(Кнопка)
Форма = ирОбщий.ПолучитьФормуЛкс("Обработка.ирНастройкаЖурналаРегистрации.Форма");
Форма.Открыть();
ТекущаяСтрока = ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока;
Если ТекущаяСтрока <> Неопределено Тогда
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ТекущаяСтрока.ПорядокСтроки, "ПорядокСтроки");
лМетаданные = Неопределено;
Если СтрокаТаблицыЗначений <> Неопределено Тогда
лМетаданные = СтрокаТаблицыЗначений.Метаданные;
КонецЕсли;
Форма.АктивизироватьСтрокуСобытия(ТекущаяСтрока.Событие, лМетаданные);
КонецЕсли;
КонецПроцедуры
Процедура ФиксированныйСписокПриИзмененииФлажка(Элемент)
ЭлементыФормы.Отбор.ОбновитьСтроки();
ЭлементыФормы.Отбор.ТекущиеДанные.Использование = Истина;
КонецПроцедуры
Процедура ОтборПриАктивизацииСтроки(Элемент = Неопределено)
Если Элемент = Неопределено Тогда
Элемент = ЭлементыФормы.Отбор;
КонецЕсли;
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
ТекущиеДанные = ЭлементыФормы.Отбор.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
ЗначениеОтбора = Неопределено;
Иначе
ЗначениеОтбора = ТекущиеДанные.Значение;
КонецЕсли;
ЭтоСписокЗначений = ТипЗнч(ЗначениеОтбора) = Тип("СписокЗначений");
Элемент.Колонки.Значение.ТолькоПросмотр = ЭтоСписокЗначений;
ЭлементыФормы.ФиксированныйСписок.Видимость = ЭтоСписокЗначений;
ЭлементыФормы.КоманднаяПанельСписка.Видимость = ЭтоСписокЗначений;
ЭлементыФормы.КоличествоЭлементовСписка.Видимость = ЭтоСписокЗначений;
Если ЭтоСписокЗначений Тогда
ЭтаФорма.КоличествоЭлементовСписка = ЗначениеОтбора.Количество();
Иначе
ЭтаФорма.КоличествоЭлементовСписка = 0;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельСпискаСнятьФлажки(Кнопка)
ЭлементыФормы.ФиксированныйСписок.Значение.ЗаполнитьПометки(Ложь);
ЭлементыФормы.Отбор.ОбновитьСтроки();
КонецПроцедуры
Процедура КоманднаяПанельСпискаУстановитьФлажки(Кнопка)
ЭлементыФормы.ФиксированныйСписок.Значение.ЗаполнитьПометки(Истина);
ЭлементыФормы.Отбор.ОбновитьСтроки();
КонецПроцедуры
Процедура ДействияФормыАнализТехножурнала(Кнопка)
АнализТехножурнала = ирОбщий.СоздатьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирАнализТехножурнала");
#Если Сервер И Не Сервер Тогда
АнализТехножурнала = Обработки.ирАнализТехножурнала.Создать();
#КонецЕсли
АнализТехножурнала.ОткрытьСОтбором(НачалоПериода, КонецПериода);
КонецПроцедуры
Процедура ОтборПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Элемент.ТекущиеДанные.Значение = Элемент.ТекущиеДанные.ОписаниеТипов.ПривестиЗначение(Элемент.ТекущиеДанные.Значение);
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииНайтиВОтбореВыгрузки(Кнопка)
ПолеОтбора = ЭлементыФормы.ТаблицаЖурнала.ТекущаяКолонка.Данные;
Если СтруктураКолонокБезОтбора.Свойство(ПолеОтбора) Тогда
Если ЗначениеЗаполнено(СтруктураКолонокБезОтбора[ПолеОтбора]) Тогда
ПолеОтбора = СтруктураКолонокБезОтбора[ПолеОтбора];
КонецЕсли;
КонецЕсли;
ЗначениеОтбора = Неопределено;
Если ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока <> Неопределено Тогда
ЗначениеОтбора = ЭлементыФормы.ТаблицаЖурнала.ТекущиеДанные[ПолеОтбора];
КонецЕсли;
СтрокаОтбора = ДобавитьЭлементОтбора(Отбор, ПолеОтбора, ЗначениеОтбора);
ЭлементыФормы.Отбор.ТекущаяСтрока = СтрокаОтбора;
ТекущаяСтрокаСписка = ЭлементыФормы.ФиксированныйСписок.Значение.НайтиПоЗначению(ЗначениеОтбора);
Если ТекущаяСтрокаСписка <> Неопределено Тогда
ЭлементыФормы.ФиксированныйСписок.ТекущаяСтрока = ТекущаяСтрокаСписка;
КонецЕсли;
ЭлементыФормы.Отбор.ОбновитьСтроки();
КонецПроцедуры
Процедура КоманднаяПанельОтборТекущийСеанс(Кнопка)
ДобавитьЭлементОтбора(Отбор, "Сеанс", НомерСеансаИнформационнойБазы(),, Истина, Ложь);
КонецПроцедуры
Процедура СтруктураКоманднойПанелиНажатие(Кнопка)
ирОбщий.ОткрытьСтруктуруКоманднойПанелиЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт
ирОбщий.Форма_ОбработкаОповещенияЛкс(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
Процедура ОтборЗначениеОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
//ирОбщий.ПолеВвода_ОкончаниеВводаТекстаЛкс(Элемент, Текст, Значение, СтандартнаяОбработка, , Истина);
ирОбщий.ПолеВвода_ОкончаниеВводаТекстаЛкс(Элемент, Текст, Значение, СтандартнаяОбработка);
КонецПроцедуры
Процедура КлсКомандаНажатие(Кнопка) Экспорт
ирОбщий.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ОбработчикОжиданияСПараметрамиЛкс() Экспорт
ирОбщий.ОбработчикОжиданияСПараметрамиЛкс();
КонецПроцедуры
Процедура ОтборЗначениеНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ПолеВводаКолонкиРасширенногоЗначения_НачалоВыбораЛкс(ЭтаФорма, ЭлементыФормы.Отбор, СтандартнаяОбработка, , Истина);
КонецПроцедуры
Процедура КоманднаяПанельСпискаСортироватьПоВозрастанию(Кнопка)
ЭлементыФормы.Отбор.ТекущиеДанные.Значение.СортироватьПоЗначению();
КонецПроцедуры
Процедура КоманднаяПанельСпискаСортироватьПоУбыванию(Кнопка)
ЭлементыФормы.Отбор.ТекущиеДанные.Значение.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
КонецПроцедуры
Процедура ДействияФормыОткрытьФайлЖурнала(Кнопка = Неопределено)
Если Кнопка <> Неопределено Тогда
Если ЗначениеЗаполнено(ИмяФайла) Тогда
Ответ = Вопрос("Хотите открыть текущий журнал регистрации?", РежимДиалогаВопрос.ДаНет);
Иначе
Ответ = КодВозвратаДиалога.Нет;
КонецЕсли;
Если Ответ = КодВозвратаДиалога.Да Тогда
ИмяФайла = "";
Иначе
//НовоеИмяФайла = ирОбщий.ВыбратьФайлЛкс(, "lgf,lgd", "Журнал регистрации 1С", ИмяФайла); // lgd выдает ошибку https://www.hostedredmine.com/issues/929797
НовоеИмяФайла = ирОбщий.ВыбратьФайлЛкс(, "lgf", "Журнал регистрации 1С", ИмяФайла);
Если НовоеИмяФайла <> Неопределено Тогда
ИмяФайла = НовоеИмяФайла;
Иначе
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ирОбщий.ОбновитьТекстПослеМаркераВСтрокеЛкс(ЭтаФорма.Заголовок,, ИмяФайла, ": ");
ЗаполнитьОтборВыгрузки();
ТаблицаЖурнала.Очистить();
ОтборПриАктивизацииСтроки();
КонецПроцедуры
Процедура КоманднаяПанельФормыОткрытьИТС(Кнопка)
ирОбщий.ОткрытьСсылкуИТСЛкс("https://its.1c.ru/db/v?doc#bookmark:dev:TI000000823");
КонецПроцедуры
Процедура КоманднаяПанельСпискаРедактироватьЭлементОтбора(Кнопка = Неопределено)
ФормаРедактора = ПолучитьФорму("РедакторСписка");
ФормаРедактора.ПараметрСписок = ЭлементыФормы.Отбор.ТекущиеДанные.Значение;
ФормаРедактора.ПараметрТекущаяСтрока = ЭлементыФормы.ФиксированныйСписок.ТекущаяСтрока;
РезультатФормы = ФормаРедактора.ОткрытьМодально();
Если РезультатФормы <> Неопределено Тогда
ЭлементыФормы.Отбор.ТекущиеДанные.Использование = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ОтборВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если КоличествоЭлементовСписка > 0 И ЭлементыФормы.Отбор.Колонки.Значение = Колонка Тогда
СтандартнаяОбработка = Ложь;
КоманднаяПанельСпискаРедактироватьЭлементОтбора();
КонецЕсли;
КонецПроцедуры
Процедура ФиксированныйСписокВыбор(Элемент, ЭлементСписка)
КоманднаяПанельСпискаРедактироватьЭлементОтбора();
КонецПроцедуры
Процедура ОтборПриИзмененииФлажка(Элемент, Колонка)
ирОбщий.ТабличноеПолеПриИзмененииФлажкаЛкс(ЭтаФорма, Элемент, Колонка);
КонецПроцедуры
Процедура ТаблицаЖурналаПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
КонецПроцедуры
Процедура КоманднаяПанельФормыОтображатьОтбор(Кнопка)
ПоказатьСвернутьОтбор(Не ЭлементыФормы.ДействияФормы.Кнопки.ОтображатьОтбор.Пометка);
КонецПроцедуры
Процедура ПоказатьСвернутьОтбор(Видимость = Истина)
ЭлементыФормы.ДействияФормы.Кнопки.ОтображатьОтбор.Пометка = Видимость;
ирОбщий.ИзменитьСвернутостьЛкс(ЭтаФорма, Видимость, ЭлементыФормы.ПанельОтбор, ЭлементыФормы.РазделительГоризонтальныйПодОтбором, ЭтаФорма.Панель, "верх");
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
Если Не Отказ Тогда
ПоказатьСвернутьОтбор();
КонецЕсли;
КонецПроцедуры
Процедура ОбновлениеОтображения()
ирОбщий.Форма_ОбновлениеОтображенияЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ПроверитьИзменениеОтбораТабличногоПоляДляИстории(ПутьКДанным)
ПодключитьОбработчикИзмененияДанных("ЭлементыФормы.ТаблицаЖурнала.Отбор", "ПроверитьИзменениеОтбораТабличногоПоляДляИстории", Истина);
ПодключитьОбработчикОжидания("ПроверитьИзменениеОтбораТабличногоПоляДляИсторииОтложенно", 0.1, Истина);
КонецПроцедуры
Процедура ОбновитьПодменюПоследнихОтборов()
ирОбщий.ОбновитьПодменюПоследнихОтборовЛкс(ЭтаФорма, ЭлементыФормы.КоманднаяПанельЖурнала, ЭлементыФормы.ТаблицаЖурнала);
КонецПроцедуры
Процедура ПроверитьИзменениеОтбораДляИсторииОтложенно()
ТабличноеПоле = ЭлементыФормы.ТаблицаЖурнала;
ДобавленВСписок = ирОбщий.ДобавитьОтборВИсториюТабличногоПоляЛкс(ЭтаФорма, ТабличноеПоле, ТабличноеПоле.ОтборСтрок, СтарыйОтбор);
Если ДобавленВСписок Тогда
ОбновитьПодменюПоследнихОтборов();
КонецЕсли;
КонецПроцедуры
Процедура ОбработчикИзмененияДанных(ПутьКДанным) Экспорт
ПутьКДаннымОтбораНайденных = "ЭлементыФормы." + ЭлементыФормы.ТаблицаЖурнала.Имя + ".Отбор";
Если ирОбщий.СтрНачинаетсяСЛкс(ПутьКДанным, ПутьКДаннымОтбораНайденных) Тогда
#Если Сервер И Не Сервер Тогда
ПроверитьИзменениеОтбораДляИсторииОтложенно();
#КонецЕсли
ПодключитьОбработчикОжидания("ПроверитьИзменениеОтбораДляИсторииОтложенно", 0.1, Истина);
ПодключитьОбработчикИзмененияДанных(ПутьКДаннымОтбораНайденных, "ОбработчикИзмененияДанных", Истина);
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииАнализПравДоступа(Кнопка)
ВыбраннаяСтрока = ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока;
Если ВыбраннаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ВыбраннаяСтрока.ПорядокСтроки, "ПорядокСтроки");
ПолноеИмяМД = ВыбратьОбъектМетаданных(СтрокаТаблицыЗначений);
Если ПолноеИмяМД = Неопределено Тогда
Возврат;
КонецЕсли;
ФормаОтчета = ирОбщий.ПолучитьФормуЛкс("Отчет.ирАнализПравДоступа.Форма",,, ПолноеИмяМД);
ФормаОтчета.Пользователь = СтрокаТаблицыЗначений.ИмяПользователя;
ФормаОтчета.ОбъектМетаданных = ПолноеИмяМД;
ФормаОтчета.ПараметрКлючВарианта = "ПоПользователям";
ФормаОтчета.Открыть();
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииОткрытьОбъектМетаданных(Кнопка)
ВыбраннаяСтрока = ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока;
Если ВыбраннаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ВыбраннаяСтрока.ПорядокСтроки, "ПорядокСтроки");
ПолноеИмяМД = ВыбратьОбъектМетаданных(СтрокаТаблицыЗначений);
Если ПолноеИмяМД = Неопределено Тогда
Возврат;
КонецЕсли;
ирОбщий.ОткрытьОбъектМетаданныхЛкс(ПолноеИмяМД);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура ТаблицаЖурналаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ОформлениеСтроки.Ячейки.Уровень.ОтображатьКартинку = Истина;
ИндексКартинки = -1;
//Если ДанныеСтроки.СтатусТранзакции = "" + СтатусТранзакцииЗаписиЖурналаРегистрации.Отменена тогда
// ИндексКартинки = 0;
//Иначе
ИндексКартинки = МассивУровнейЖурнала.Найти("" + ДанныеСтроки.Уровень);
ИндексКартинки = ?(ИндексКартинки <> Неопределено, ИндексКартинки, -1);
//КонецЕсли;
Если ИндексКартинки >= 0 тогда
ОформлениеСтроки.Ячейки.Уровень.ИндексКартинки = ИндексКартинки;
КонецЕсли;
Если ДанныеСтроки.Сеанс = НомерСеансаИнформационнойБазы() Тогда
ОформлениеСтроки.ЦветФона = Новый Цвет(240, 255, 240);
КонецЕсли;
//Если ДанныеСтроки.Данные = ВыбОбъект Тогда
// ОформлениеСтроки.ЦветФона = Новый Цвет(255, 250, 250);
//КонецЕсли;
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ДанныеСтроки.ПорядокСтроки, "ПорядокСтроки");
Если СтрокаТаблицыЗначений <> Неопределено Тогда
Если ТаблицаЗначенийЖурнала.Колонки.Найти("РазделениеДанныхСеанса") <> Неопределено Тогда
ирОбщий.ОформитьЯчейкуСРасширеннымЗначениемЛкс(ОформлениеСтроки.Ячейки.РазделениеДанныхСеанса, СтрокаТаблицыЗначений.РазделениеДанныхСеанса, Элемент.Колонки.РазделениеДанныхСеанса);
КонецЕсли;
Если ТипЗнч(СтрокаТаблицыЗначений.Метаданные) = Тип("Строка") Тогда
КартинкаКорневогоТипа = ирОбщий.КартинкаКорневогоТипаМДЛкс(ирОбщий.ПервыйФрагментЛкс(СтрокаТаблицыЗначений.Метаданные));
Если КартинкаКорневогоТипа.Вид <> ВидКартинки.Пустая Тогда
ОформлениеСтроки.Ячейки.Метаданные.УстановитьКартинку(КартинкаКорневогоТипа);
КонецЕсли;
Иначе
ирОбщий.ОформитьЯчейкуСРасширеннымЗначениемЛкс(ОформлениеСтроки.Ячейки.Метаданные, СтрокаТаблицыЗначений.Метаданные, Элемент.Колонки.Метаданные);
КонецЕсли;
ирОбщий.ОформитьЯчейкуСРасширеннымЗначениемЛкс(ОформлениеСтроки.Ячейки.Данные, СтрокаТаблицыЗначений.Данные, Элемент.Колонки.Данные);
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки,,,,, СтрокаТаблицыЗначений);
КонецЕсли;
КонецПроцедуры
Процедура ОтборПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
СтрокаОтбора = ДанныеСтроки;
ИспользованиеСтрокиОтбора = ИспользованиеСтрокиОтбора(СтрокаОтбора);
Если ТипЗнч(ДанныеСтроки.Значение) = Тип("СписокЗначений") Тогда
Если ДанныеСтроки.Значение.ТипЗначения.Типы().Количество() = 0 Тогда
КоличествоПомеченных = Неопределено;
ПредставлениеСтрокиОтбора = ПредставлениеСтрокиОтбора(ДанныеСтроки, КоличествоПомеченных);
ИспользованиеСтрокиОтбора = ИспользованиеСтрокиОтбора И ЗначениеЗаполнено(ПредставлениеСтрокиОтбора);
ОформлениеСтроки.Ячейки.Значение.УстановитьТекст("(" + КоличествоПомеченных + " из " + ДанныеСтроки.Значение.Количество() + ") " + ПредставлениеСтрокиОтбора);
КонецЕсли;
КонецЕсли;
Если ДанныеСтроки.Поле = "Данные" Тогда
ирОбщий.ОформитьЯчейкуСРасширеннымЗначениемЛкс(ОформлениеСтроки.Ячейки.Значение,,, Истина);
КонецЕсли;
Если Не ИспользованиеСтрокиОтбора Тогда
ОформлениеСтроки.ЦветТекста = ирОбщий.ЦветТекстаНеактивностиЛкс();
КонецЕсли;
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура КоманднаяПанельЖурналРегистрацииРедакторОбъектаБД(Кнопка)
ТекущаяСтрока = ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицыЗначений = ТаблицаЗначенийЖурнала.Найти(ТекущаяСтрока.ПорядокСтроки, "ПорядокСтроки");
Если Не ирОбщий.ЛиСсылкаНаОбъектБДЛкс(СтрокаТаблицыЗначений.Данные) Тогда
Возврат
КонецЕсли;
ирОбщий.ОткрытьСсылкуВРедактореОбъектаБДЛкс(СтрокаТаблицыЗначений.Данные);
КонецПроцедуры
Процедура КоманднаяПанельОтборАлгоритм(Кнопка)
СтандартнаяОбработка = Ложь;
СтруктураАлгоритма = ирОбщий.ОбъектИзСтрокиXMLЛкс(АлгоритмПередВыгрузкой);
Результат = ирОбщий.РедактироватьАлгоритмЧерезСтруктуруЛкс(СтруктураАлгоритма, мАлгоритмПередВыгрузкойПараметры,,, "Алгоритм перед выгрузкой");
Если Результат Тогда
Если Не ЗначениеЗаполнено(СтруктураАлгоритма.ТекстАлгоритма) Тогда
ЭтотОбъект.АлгоритмПередВыгрузкой = "";
Иначе
ЭтотОбъект.АлгоритмПередВыгрузкой = ирОбщий.ОбъектВСтрокуXMLЛкс(СтруктураАлгоритма);
КонецЕсли;
КонецЕсли;
НастроитьЭлементыФормы();
КонецПроцедуры
Процедура НастроитьЭлементыФормы()
ЭлементыФормы.КоманднаяПанельОтбор.Кнопки.Алгоритм.Пометка = ЗначениеЗаполнено(АлгоритмПередВыгрузкой);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализЖурналаРегистрации.Форма.Форма");
СписокВыбора = ЭлементыФормы.МаксимальныйРазмерВыгрузки.СписокВыбора;
СписокВыбора.Добавить(100);
СписокВыбора.Добавить(1000);
СписокВыбора.Добавить(10000);
СписокВыбора.Добавить(100000);
СписокВыбора.Добавить(500000);
РазделительДлительности = "-";
СтруктураКолонокБезОтбора = Новый Структура();
СтруктураКолонокБезОтбора.Вставить("ПредставлениеПриложения", "ИмяПриложения");
СтруктураКолонокБезОтбора.Вставить("ПредставлениеСобытия", "Событие");
СтруктураКолонокБезОтбора.Вставить("ИмяПользователя", "Пользователь");
СтруктураКолонокБезОтбора.Вставить("Дата");
СтруктураКолонокБезОтбора.Вставить("Соединение");
СтруктураКолонокБезОтбора.Вставить("ПредставлениеМетаданных", "Метаданные");
МассивУровнейЖурнала = Новый Массив();
МассивУровнейЖурнала.Добавить("" + УровеньЖурналаРегистрации.Примечание);
МассивУровнейЖурнала.Добавить("" + УровеньЖурналаРегистрации.Информация);
МассивУровнейЖурнала.Добавить("" + УровеньЖурналаРегистрации.Предупреждение);
МассивУровнейЖурнала.Добавить("" + УровеньЖурналаРегистрации.Ошибка);

View File

@ -1,152 +0,0 @@

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

View File

@ -1,5 +0,0 @@

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

View File

@ -1,441 +0,0 @@
Перем ШаблонПоля;
Перем ШаблонЭлемента;
Перем ШаблонОбласти;
Процедура ПриОткрытии()
Если КлючУникальности = "Автотест" Тогда
Возврат;
КонецЕсли;
СтрокаСобытияБлокировки = ЭтаФорма.КлючУникальности;
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + " - " + Формат(СтрокаСобытияБлокировки.МоментВремени, "ЧГ=");
ЭтаФорма.Инфобаза = СтрокаСобытияБлокировки.Инфобаза;
ЭтаФорма.Соединение = СтрокаСобытияБлокировки.Соединение_;
ЭтаФорма.TCPСоединение = СтрокаСобытияБлокировки.TCPСоединение;
ЭтаФорма.Сеанс = СтрокаСобытияБлокировки.Сеанс;
ЭтаФорма.Пользователь = СтрокаСобытияБлокировки.Пользователь;
ЭтаФорма.Длительность = СтрокаСобытияБлокировки.Длительность;
ЭтаФорма.Пространства = СтрокаСобытияБлокировки.Regions;
ЭтаФорма.ПространстваМета = СтрокаСобытияБлокировки.RegionsМета;
ЭтаФорма.СтрокаМодуля = СтрокаСобытияБлокировки.СтрокаМодуля;
ЭтаФорма.Дата = СтрокаСобытияБлокировки.Дата;
ЭтаФорма.ДатаНачала = СтрокаСобытияБлокировки.ДатаНачала;
ЭтаФорма.МоментВремени = СтрокаСобытияБлокировки.МоментВремени;
ЭтаФорма.МоментВремениНачала = СтрокаСобытияБлокировки.МоментВремениНачала;
МассивСоединенийБлокираторов = ирОбщий.СтрРазделитьЛкс(СтрокаСобытияБлокировки.Блокираторы,,, Ложь);
Счетчик = 1;
Для Каждого БлокировавшееСоединение Из МассивСоединенийБлокираторов Цикл
СтрокаБлокиратора = БлокировавшиеСоединения.Добавить();
СтрокаБлокиратора.TCPСоединение = БлокировавшееСоединение;
СтрокаБлокиратора.Порядок = Счетчик;
Счетчик = Счетчик + 1;
КонецЦикла;
ПоляОбластиБлокировки.Очистить();
ОписаниеБлокировкиМета = ПолучитьОписаниеБлокировкиМета(СтрокаСобытияБлокировки);
ЗагрузитьОбластиБлокировки(ОбластиБлокировки, СтрокаСобытияБлокировки.Locks, ОписаниеБлокировкиМета);
ЭтаФорма.КоличествоЭлементов = ОбластиБлокировки.Количество();
ирОбщий.ТабличноеПолеВставитьКолонкуНомерСтрокиЛкс(ЭлементыФормы.ОбластиБлокировки);
ирОбщий.ТабличноеПолеВставитьКолонкуНомерСтрокиЛкс(ЭлементыФормы.ОбластиБлокировкиБлокиратора);
КонецПроцедуры
Функция ПолучитьОписаниеБлокировкиМета(Знач СтрокаБлокировки)
ОписаниеБлокировкиМета = СтрокаБлокировки.LocksМета;
Если ирОбщий.СтрокиРавныЛкс(ОписаниеБлокировкиМета, РезультатПереводаСлишкомБольшогоТекста()) Тогда
Состояние("Перевод в термины метаданных...");
ОписаниеБлокировкиМета = ПеревестиТекстБДВТерминыМетаданных(СтрокаБлокировки.Locks,,,,, 0);
СтрокаБлокировки.LocksМета = ОписаниеБлокировкиМета;
Состояние("");
КонецЕсли;
Если Не ЗначениеЗаполнено(ОписаниеБлокировкиМета) Тогда
ОписаниеБлокировкиМета = СтрокаБлокировки.Locks;
КонецЕсли;
Возврат ОписаниеБлокировкиМета;
КонецФункции
Процедура ЗагрузитьОбластиБлокировки(ТаблицаОбластейБлокировки, ОписаниеБлокировки, ОписаниеБлокировкиМета)
ТаблицаОбластейБлокировки.Очистить();
RegExpЭлементов = мПлатформа.RegExp;
RegExpЭлементов.Global = Истина;
RegExpЭлементов.Pattern = ШаблонЭлемента;
RegExpОбластей = мПлатформа.RegExp2;
RegExpОбластей.Global = Истина;
RegExpОбластей.Pattern = ШаблонОбласти;
ВхожденияЭлементов = RegExpЭлементов.НайтиВхождения(ОписаниеБлокировки);
ВхожденияЭлементовМета = RegExpЭлементов.НайтиВхождения(ОписаниеБлокировкиМета);
ИндикаторПространств = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ВхожденияЭлементов.Количество(), "Пространства");
Для ИндексЭлемента = 0 По ВхожденияЭлементов.Количество() - 1 Цикл
ирОбщий.ОбработатьИндикаторЛкс(ИндикаторПространств);
ВхождениеЭлемента = ВхожденияЭлементов[ИндексЭлемента];
ВхождениеЭлементаМета = ВхожденияЭлементовМета[ИндексЭлемента];
Пространство = ВхождениеЭлемента.SubMatches(0);
ПространствоМета = ВхождениеЭлементаМета.SubMatches(0);
ТипБлокировки = ВхождениеЭлемента.SubMatches(1);
ВхожденияОбластей = RegExpОбластей.НайтиВхождения(ВхождениеЭлемента.SubMatches(2));
ВхожденияОбластейМета = RegExpОбластей.НайтиВхождения(ВхождениеЭлементаМета.SubMatches(2));
Если ВхожденияОбластей.Количество() > 0 Тогда
ИндикаторОбласти = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ВхожденияОбластей.Количество(), "Области");
Для ИндексОбласти = 0 По ВхожденияОбластей.Количество() - 1 Цикл
ирОбщий.ОбработатьИндикаторЛкс(ИндикаторОбласти);
ВхождениеОбласти = ВхожденияОбластей[ИндексОбласти];
ВхождениеОбластиМета = ВхожденияОбластейМета[ИндексОбласти];
СтрокаОбластиБлокировки = ТаблицаОбластейБлокировки.Добавить();
СтрокаОбластиБлокировки.Пространство = Пространство;
СтрокаОбластиБлокировки.ПространствоМета = ПространствоМета;
СтрокаОбластиБлокировки.ТипБлокировки = ТипБлокировки;
СтрокаОбластиБлокировки.Область = СокрЛП(ВхождениеОбласти.SubMatches(0));
СтрокаОбластиБлокировки.ОбластьМета = СокрЛП(ВхождениеОбластиМета.SubMatches(0));
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
Иначе
СтрокаОбластиБлокировки = ТаблицаОбластейБлокировки.Добавить();
СтрокаОбластиБлокировки.Пространство = Пространство;
СтрокаОбластиБлокировки.ПространствоМета = ПространствоМета;
СтрокаОбластиБлокировки.ТипБлокировки = ТипБлокировки;
КонецЕсли;
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
ТаблицаОбластейБлокировки.Сортировать("ПространствоМета, ТипБлокировки, Область");
КонецПроцедуры
Процедура ЗагрузитьПоляЭлементаБлокировки(ТаблицаПолейЭлементаБлокировки, ОписаниеПолей, ОписаниеПолейМета)
ТаблицаПолейЭлементаБлокировки.Очистить();
RegExp = мПлатформа.RegExp;
RegExp.Global = Истина;
// ШаблонПоля = "(\w+)=(?:(\d+\:\w+)|(\d+)|T""(\d+)""|(\w+)|(""""""\w*"""""")|(\[(?:(\d+)|T""(\d+)""|(\+))\:(?:(\d+)|T""(\d+)""|(\+))\]))"; // Справочно
RegExp.Pattern = ШаблонПоля;
Вхождения = RegExp.НайтиВхождения(ОписаниеПолей);
ВхожденияМета = RegExp.НайтиВхождения(ОписаниеПолейМета);
Для ИндексЭлемента = 0 По Вхождения.Количество() - 1 Цикл
Вхождение = Вхождения[ИндексЭлемента];
ВхождениеМета = ВхожденияМета[ИндексЭлемента];
СтрокаПоля = ТаблицаПолейЭлементаБлокировки.Добавить();
СтрокаПоля.Поле = Вхождение.SubMatches(0);
СтрокаПоля.ПолеМета = ВхождениеМета.SubMatches(0);
Если Вхождение.SubMatches(1) <> Неопределено Тогда
СтрокаПоля.ЗначениеSDBL = Вхождение.SubMatches(1);
СтрокаПоля.Значение = ирОбщий.ПреобразоватьЗначениеИзSDBLЛкс(СтрокаПоля.ЗначениеSDBL, мАдресЧужойСхемыБД);
Если ТипЗнч(СтрокаПоля.Значение) <> Тип("Строка") Тогда
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.Значение);
КонецЕсли;
ИначеЕсли Вхождение.SubMatches(2) <> Неопределено Тогда
СтрокаПоля.ЗначениеSDBL = Вхождение.SubMatches(2);
СтрокаПоля.Значение = Число(СтрокаПоля.ЗначениеSDBL);
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.Значение);
ИначеЕсли Вхождение.SubMatches(3) <> Неопределено Тогда
СтрокаПоля.ЗначениеSDBL = Вхождение.SubMatches(3);
СтрокаПоля.Значение = Дата(СтрокаПоля.ЗначениеSDBL);
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.Значение);
ИначеЕсли Вхождение.SubMatches(4) <> Неопределено Тогда
СтрокаПоля.ЗначениеSDBL = Вхождение.SubMatches(4);
//СтрокаПоля.Значение = Вычислить(СтрокаПоля.ЗначениеSDBL);
СтрокаПоля.Значение = "<" + СтрокаПоля.ЗначениеSDBL + ">";
ИначеЕсли Вхождение.SubMatches(5) <> Неопределено Тогда
СтрокаПоля.ЗначениеSDBL = Вхождение.SubMatches(5);
Попытка
ЗначениеСтроки = Вычислить(СтрокаПоля.ЗначениеSDBL);
Исключение
Сообщить("Ошибка преобразования строкового значения из SDBL строки " + СтрокаПоля.ЗначениеSDBL);
КонецПопытки;
СтрокаПоля.Значение = ЗначениеСтроки;
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.Значение);
ИначеЕсли Вхождение.SubMatches(6) <> Неопределено Тогда
// Диапазон
Если Вхождение.SubMatches(7) <> Неопределено Тогда
СтрокаПоля.ЗначениеС = Число(Вхождение.SubMatches(7));
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.ЗначениеС);
ИначеЕсли Вхождение.SubMatches(8) <> Неопределено Тогда
СтрокаПоля.ЗначениеС = Дата(Вхождение.SubMatches(8));
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.ЗначениеС);
Иначе
СтрокаПоля.ЗначениеC = "<+>";
КонецЕсли;
Если Вхождение.SubMatches(10) <> Неопределено Тогда
СтрокаПоля.ЗначениеПо = Число(Вхождение.SubMatches(10));
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.ЗначениеПо);
ИначеЕсли Вхождение.SubMatches(11) <> Неопределено Тогда
СтрокаПоля.ЗначениеПо = Дата(Вхождение.SubMatches(11));
СтрокаПоля.ТипЗначения = ТипЗнч(СтрокаПоля.ЗначениеПо);
Иначе
СтрокаПоля.ЗначениеПо = "<+>";
КонецЕсли;
КонецЕсли;
КонецЦикла;
ТаблицаПолейЭлементаБлокировки.Сортировать("ПолеМета");
КонецПроцедуры
Процедура БлокировавшиеСоединенияПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
ВозможныеБлокираторы.Очистить();
Если Элемент.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Элемент.ТекущаяСтрока.Сеанс) Тогда
// Свойство WaitConnections для события TLOCK содержит номер единственного ожидаемого соединения
// https://partners.v8.1c.ru/forum/t/1326446/m/1326446
ВременныйПостроительЗапроса = Новый ПостроительЗапроса;
ВременныйПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЖурнала);
ВременныйПостроительЗапроса.Отбор.Добавить("Инфобаза").Установить(Инфобаза);
ВременныйПостроительЗапроса.Отбор.Добавить("Событие").Установить("SDBL");
ВременныйПостроительЗапроса.Отбор.Добавить("TCPСоединение").Установить(Элемент.ТекущаяСтрока.TCPСоединение);
ЭлементОтбораМоментВремени = ВременныйПостроительЗапроса.Отбор.Добавить("МоментВремени");
ЭлементОтбораМоментВремени.Использование = Истина;
ЭлементОтбораДействие = ВременныйПостроительЗапроса.Отбор.Добавить("Действие");
// Ищем начало транзакции
ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.МеньшеИлиРавно;
ЭлементОтбораМоментВремени.Значение = МоментВремениНачала;
ЭлементОтбораДействие.Установить("BeginTransaction");
ВременныйПостроительЗапроса.Порядок.Установить("МоментВремени Убыв");
НайденныеНачала = ВременныйПостроительЗапроса.Результат.Выгрузить();
Если НайденныеНачала.Количество() > 0 Тогда
Элемент.ТекущаяСтрока.НачалоТранзакции = НайденныеНачала[0].МоментВремени;
КонецЕсли;
Если ЗначениеЗаполнено(Элемент.ТекущаяСтрока.НачалоТранзакции) Тогда
Элемент.ТекущаяСтрока.Возраст = РазностьМоментовВремени(МоментВремениНачала, Элемент.ТекущаяСтрока.НачалоТранзакции) / 1000;
КонецЕсли;
Если ТаблицаЖурнала.Найти("BeginTransaction", "Действие") = Неопределено Тогда
Сообщить("В таблице журнала отсутствуют события начала транзакций (Действие=BeginTransaction).", СтатусСообщения.Внимание);
КонецЕсли;
Если ТаблицаЖурнала.Найти("CommitTransaction", "Действие") = Неопределено Тогда
Сообщить("В таблице журнала отсутствуют события окончания транзакций (Действие=CommitTransaction,RollbackTransaction).");
КонецЕсли;
// https://partners.v8.1c.ru/forum/topic/1326457
// Ищем конец транзакции
ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.БольшеИлиРавно;
ЭлементОтбораМоментВремени.Значение = МоментВремениНачала;
ЭлементОтбораДействие.ВидСравнения = ВидСравнения.ВСписке;
ЭлементОтбораДействие.Использование = Истина;
СписокДействий = Новый СписокЗначений;
СписокДействий.Добавить("BeginTransaction"); // если собирали только BeginTransaction
СписокДействий.Добавить("CommitTransaction");
СписокДействий.Добавить("RollbackTransaction");
ЭлементОтбораДействие.Значение = СписокДействий;;
ВременныйПостроительЗапроса.Порядок.Установить("МоментВремени Возр");
НайденныеКонцы = ВременныйПостроительЗапроса.Результат.Выгрузить();
Если НайденныеКонцы.Количество() > 0 Тогда
Элемент.ТекущаяСтрока.КонецТранзакции = НайденныеКонцы[0].МоментВремени;
Элемент.ТекущаяСтрока.ПолнаяДлительность = РазностьМоментовВремени(Элемент.ТекущаяСтрока.КонецТранзакции, Элемент.ТекущаяСтрока.НачалоТранзакции) / 1000;
Иначе
Элемент.ТекущаяСтрока.ПолнаяДлительность = "?";
КонецЕсли;
КонецЕсли;
ВременныйПостроительЗапроса = Новый ПостроительЗапроса;
ВременныйПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЖурнала);
ВременныйПостроительЗапроса.Отбор.Добавить("Инфобаза").Установить(Инфобаза);
ВременныйПостроительЗапроса.Отбор.Добавить("Событие").Установить("TLOCK");
ВременныйПостроительЗапроса.Отбор.Добавить("TCPСоединение").Установить(Элемент.ТекущаяСтрока.TCPСоединение);
Если Найти(Пространства, ",") = 0 Тогда
ЭлементОтбораПространства = ВременныйПостроительЗапроса.Отбор.Добавить("Regions");
ЭлементОтбораПространства.Установить(Пространства);
ЭлементОтбораПространства.ВидСравнения = ВидСравнения.Содержит;
КонецЕсли;
ВременныйПостроительЗапроса.Порядок.Установить("МоментВремени Возр");
ЭлементОтбораМоментВремени = ВременныйПостроительЗапроса.Отбор.Добавить("МоментВремени");
ЭлементОтбораМоментВремени.Использование = Истина;
//Если Элемент.ТекущаяСтрока.Порядок = 1 Тогда
// МоментВремениКонцаБлокираторов = МоментВремениНачала;
//Иначе
// МоментВремениКонцаБлокираторов = МоментВремени;
//КонецЕсли;
//Если Истина
// И ЗначениеЗаполнено(Элемент.ТекущаяСтрока.КонецТранзакции)
// И ЗначениеЗаполнено(Элемент.ТекущаяСтрока.НачалоТранзакции)
//Тогда
// ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
// ЭлементОтбораМоментВремени.ЗначениеС = Элемент.ТекущаяСтрока.НачалоТранзакции;
// ЭлементОтбораМоментВремени.ЗначениеПо = Элемент.ТекущаяСтрока.КонецТранзакции;
//Иначе
Если ЗначениеЗаполнено(Элемент.ТекущаяСтрока.НачалоТранзакции) Тогда
ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
ЭлементОтбораМоментВремени.ЗначениеС = Элемент.ТекущаяСтрока.НачалоТранзакции;
ЭлементОтбораМоментВремени.ЗначениеПо = МоментВремени;
Если ЗначениеЗаполнено(Элемент.ТекущаяСтрока.КонецТранзакции) Тогда
ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.МеньшеИлиРавно;
ЭлементОтбораМоментВремени.Значение = Элемент.ТекущаяСтрока.КонецТранзакции;
КонецЕсли;
Иначе
ЭлементОтбораМоментВремени.ВидСравнения = ВидСравнения.МеньшеИлиРавно;
ЭлементОтбораМоментВремени.Значение = МоментВремени;
КонецЕсли;
лВозможныеБлокираторы = ВременныйПостроительЗапроса.Результат.Выгрузить();
Если лВозможныеБлокираторы.Количество() > 0 Тогда
Для Каждого лВозможныйБлокиратор Из лВозможныеБлокираторы Цикл
ЗаполнитьСвойстваСИменамиМетаданных(лВозможныйБлокиратор);
КонецЦикла;
ПоследнийВозможныйБлокиратор = лВозможныеБлокираторы[лВозможныеБлокираторы.Количество() - 1];
Элемент.ТекущаяСтрока.Сеанс = ПоследнийВозможныйБлокиратор.Сеанс;
Элемент.ТекущаяСтрока.Соединение = ПоследнийВозможныйБлокиратор.Соединение_;
Элемент.ТекущаяСтрока.Пользователь = ПоследнийВозможныйБлокиратор.Пользователь;
// На случай, если начала транзакции не нашли и номер соединения был использован разными сеансами
ирОбщий.ЗагрузитьВТаблицуЗначенийЛкс(лВозможныеБлокираторы.Скопировать(Новый Структура("Сеанс", ПоследнийВозможныйБлокиратор.Сеанс)), ВозможныеБлокираторы);
ЭтаФорма.КоличествоВозможныхБлокираторов = ВозможныеБлокираторы.Количество();
RegExp = мПлатформа.RegExp;
RegExp.Global = Истина;
RegExp.Pattern = ШаблонОбласти;
Индикатор = ирОбщий.ПолучитьИндикаторПроцессаЛкс(ВозможныеБлокираторы.Количество(), "Вычисление количества областей");
Для Каждого СтрокаБлокиратора Из ВозможныеБлокираторы Цикл
ирОбщий.ОбработатьИндикаторЛкс(Индикатор);
Вхождения = RegExp.НайтиВхождения(СтрокаБлокиратора.Locks);
СтрокаБлокиратора.Количество = Вхождения.Количество();
СтрокаБлокиратора.Возраст = РазностьМоментовВремени(МоментВремениНачала, СтрокаБлокиратора.МоментВремени) / 1000;
КонецЦикла;
ирОбщий.ОсвободитьИндикаторПроцессаЛкс();
ЭлементыФормы.ВозможныеБлокираторы.ТекущаяСтрока = ВозможныеБлокираторы[0];
КонецЕсли;
КонецПроцедуры
Процедура ОткрытьНажатие(Элемент)
ФормаСобытия = ПолучитьФорму("Событие", , МоментВремени);
ФормаСобытия.Открыть();
КонецПроцедуры
Процедура ТаблицаЖурналаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
ФормаСобытия = ПолучитьФорму("Событие", ВладелецФормы, ВыбраннаяСтрока.МоментВремени);
ФормаСобытия.Открыть();
КонецПроцедуры
Процедура ТаблицаЖурналаПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
Если Элемент.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
//Если Элемент.ТекущаяСтрока.LocksМета = РезультатПереводаСлишкомБольшогоТекста() Тогда
// Элемент.ТекущаяСтрока.LocksМета = ПеревестиТекстБДВТерминыМетаданных(Элемент.ТекущаяСтрока.Locks, , , ,, 0);
//КонецЕсли;
ОписаниеБлокировкиМета = ПолучитьОписаниеБлокировкиМета(Элемент.ТекущаяСтрока);
ЗагрузитьОбластиБлокировки(ОбластиБлокировкиБлокиратора, Элемент.ТекущаяСтрока.Locks, ОписаниеБлокировкиМета);
КонецПроцедуры
Процедура ОбластиБлокировкиБлокиратораПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ПоляОбластиБлокировкиБлокиратора.Очистить();
ЗагрузитьПоляЭлементаБлокировки(ПоляОбластиБлокировкиБлокиратора, Элемент.ТекущаяСтрока.Область, Элемент.ТекущаяСтрока.ОбластьМета);
КонецПроцедуры
Процедура ОбластиБлокировкиПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ЗагрузитьПоляЭлементаБлокировки(ПоляОбластиБлокировки, Элемент.ТекущаяСтрока.Область, Элемент.ТекущаяСтрока.ОбластьМета);
КонецПроцедуры
Процедура ПоляОбластиБлокировкиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя = "Значение" Тогда
СтандартнаяОбработка = Ложь;
ОткрытьЗначение(ВыбраннаяСтрока.Значение);
КонецЕсли;
КонецПроцедуры
Процедура ПоляОбластиБлокировкиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
Если ЗначениеЗаполнено(ДанныеСтроки.ЗначениеSDBL) Тогда
ОформлениеСтроки.Ячейки.ЗначениеС.Видимость = Ложь;
ОформлениеСтроки.Ячейки.ЗначениеПо.Видимость = Ложь;
Иначе
ОформлениеСтроки.Ячейки.Значение.Видимость = Ложь;
ОформлениеСтроки.Ячейки.ЗначениеSDBL.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Процедура КлсКомандаНажатие(Кнопка) Экспорт
ирОбщий.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ОбработчикОжиданияСПараметрамиЛкс() Экспорт
ирОбщий.ОбработчикОжиданияСПараметрамиЛкс();
КонецПроцедуры
Процедура КоманднаяПанель1Сравнить(Кнопка)
ВыводБезОформления = Ложь;
СравниваемыйДокумент1 = ирОбщий.ВывестиСтрокиТабличногоПоляСНастройкойЛкс(ЭлементыФормы.ОбластиБлокировки, ВыводБезОформления);
СравниваемыйДокумент2 = ирОбщий.ВывестиСтрокиТабличногоПоляСНастройкойЛкс(ЭлементыФормы.ОбластиБлокировкиБлокиратора, ВыводБезОформления);
ирОбщий.СравнитьЗначенияВФормеЛкс(СравниваемыйДокумент1, СравниваемыйДокумент2, , "Заблокированный", "Блокиратор",, Ложь);
КонецПроцедуры
Процедура ОбластиБлокировкиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ОбластиБлокировкиБлокиратораПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ВозможныеБлокираторыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура БлокировавшиеСоединенияПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт
ирОбщий.Форма_ОбработкаОповещенияЛкс(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализТехножурнала.Форма.Блокировка1С");
шИмя = "[" + мПлатформа.шБуква + "\d]+";
ШаблонПоля = "(" + шИмя + ")=(?:(\d+\:" + шИмя + ")|(-?\d+)|T""(\d+)""|(" + шИмя + ")|(""(?:(?:"""")*|[^""])*"")|(\[(?:(-?\d+)|T""(\d+)""|(\+))\:(?:(-?\d+)|T""(\d+)""|(\+))\]))";
ШаблонОбласти = "((?:\s+" + ШаблонПоля + ")+)\s*";
ШаблонЭлемента = "\s*(" + шИмя + "(?:\." + шИмя + ")+)\s+(" + шИмя + ")(" + ШаблонОбласти + "(,\s*" + ШаблонОбласти + ")*)?(?:,|$)";

View File

@ -1,245 +0,0 @@
Процедура ПриОткрытии()
Если ВладелецФормы = Неопределено Тогда
Возврат;
КонецЕсли;
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
ТаблицаЖурнала = ВладелецФормы.ТаблицаЖурнала;
СтрокаСобытияБлокировки = ЭтаФорма.КлючУникальности;
Если СтрокаСобытияБлокировки = Неопределено Тогда
Возврат;
КонецЕсли;
#Если Сервер И Не Сервер Тогда
СтрокаСобытияБлокировки = Обработки.ирАнализТехножурнала.Создать().ТаблицаЖурнала.Добавить();
#КонецЕсли
ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + " - " + Формат(СтрокаСобытияБлокировки.МоментВремени, "ЧГ=");
СтрокаДерева = ДеревоОжиданий.Строки.Добавить();
ЗаполнитьСвойстваСтрокиДерева(СтрокаДерева, СтрокаСобытияБлокировки);
КонецПроцедуры
Процедура ЗаполнитьСвойстваСтрокиДерева(Знач СтрокаДерева, Знач СтрокаСобытияБлокировки, РодительЕстьЖертва = Неопределено)
ЗаполнитьЗначенияСвойств(СтрокаДерева, СтрокаСобытияБлокировки);
СтрокаДерева.ЖертваВремя = СтрокаСобытияБлокировки.lkpto;
СтрокаДерева.Соединение1С = СтрокаСобытияБлокировки.Соединение_;
СтрокаДерева.Длительность = СтрокаСобытияБлокировки.Длительность / 1000;
СтрокаДерева.ВиновникВремя = СтрокаСобытияБлокировки.lkato;
Если СтрокаДерева.Уровень() = 2 Тогда
Возврат;
КонецЕсли;
Если РодительЕстьЖертва = Неопределено Тогда
Если СтрокаСобытияБлокировки.lka Тогда
ДобавитьДочерние(СтрокаДерева, СтрокаСобытияБлокировки.lkaid, Ложь);
КонецЕсли;
Если СтрокаСобытияБлокировки.lkp Тогда
ДобавитьДочерние(СтрокаДерева, СтрокаСобытияБлокировки.lkpid, Истина);
КонецЕсли;
Иначе
Если Истина
И СтрокаСобытияБлокировки.lkp
И РодительЕстьЖертва
Тогда
ДобавитьДочерние(СтрокаДерева, СтрокаСобытияБлокировки.lkpid, РодительЕстьЖертва);
КонецЕсли;
Если Истина
И СтрокаСобытияБлокировки.lka
И Не РодительЕстьЖертва
Тогда
ДобавитьДочерние(СтрокаДерева, СтрокаСобытияБлокировки.lkaid, РодительЕстьЖертва);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ДобавитьДочерние(РодительскаяСтрокаДерева, НомераЗапросов, РодительЕстьЖертва = Истина)
#Если Сервер И Не Сервер Тогда
РодительскаяСтрокаДерева = ДеревоОжиданий.Строки.Добавить();
ТаблицаЖурнала = Обработки.ирАнализТехножурнала.Создать().ТаблицаЖурнала;
#КонецЕсли
Для Каждого НомерЗапроса Из ирОбщий.СтрРазделитьЛкс(НомераЗапросов, ",", Истина) Цикл
ВременныйПостроительЗапроса = Новый ПостроительЗапроса;
ВременныйПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаЖурнала);
Если РодительЕстьЖертва Тогда
ИмяПоляСвязи = "lkaid";
Иначе
ИмяПоляСвязи = "lkpid";
КонецЕсли;
ОтборСвязи = ВременныйПостроительЗапроса.Отбор.Добавить(ИмяПоляСвязи);
ОтборСвязи.Использование = Истина;
ОтборСвязи.ВидСравнения = ВидСравнения.Содержит;
ОтборСвязи.Значение = НомерЗапроса;
//ВременныйПостроительЗапроса.Отбор.Добавить("Инфобаза").Установить(Инфобаза);
//ВременныйПостроительЗапроса.Отбор.Добавить("ИнфобазаСУБД").Установить(Инфобаза);
ВременныйПостроительЗапроса.Порядок.Установить("МоментВремени Возр");
СтрокиЖурнала = ВременныйПостроительЗапроса.Результат.Выгрузить();
Для Каждого СтрокаСобытияБлокировки Из СтрокиЖурнала Цикл
Если Ложь
Или (Истина
И СтрокаСобытияБлокировки.Дата <= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.Дата >= РодительскаяСтрокаДерева.ДатаНачала)
Или (Истина
И СтрокаСобытияБлокировки.ДатаНачала <= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.ДатаНачала >= РодительскаяСтрокаДерева.ДатаНачала)
Или (Истина
И СтрокаСобытияБлокировки.Дата <= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.Дата >= РодительскаяСтрокаДерева.ДатаНачала
И СтрокаСобытияБлокировки.ДатаНачала <= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.ДатаНачала >= РодительскаяСтрокаДерева.ДатаНачала)
Или (Истина
И СтрокаСобытияБлокировки.Дата >= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.Дата <= РодительскаяСтрокаДерева.ДатаНачала
И СтрокаСобытияБлокировки.ДатаНачала >= РодительскаяСтрокаДерева.Дата
И СтрокаСобытияБлокировки.ДатаНачала <= РодительскаяСтрокаДерева.ДатаНачала)
Тогда
СтрокаДерева = РодительскаяСтрокаДерева.Строки.Добавить();
СтрокаДерева.РодительЕстьЖертва = РодительЕстьЖертва;
ЗаполнитьСвойстваСтрокиДерева(СтрокаДерева, СтрокаСобытияБлокировки, РодительЕстьЖертва);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура КоманднаяПанель1НайтиВЖурнале(Кнопка)
Если ВладелецФормы <> Неопределено Тогда
Если ЭлементыФормы.ДеревоОжиданий.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ВыбраннаяСтрока = ЭтотОбъект.ТаблицаЖурнала.Найти(ЭлементыФормы.ДеревоОжиданий.ТекущаяСтрока.МоментВремени, "МоментВремени");
Если ВыбраннаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ВладелецФормы.ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока = ВыбраннаяСтрока;
Если ВладелецФормы.ЭлементыФормы.ТаблицаЖурнала.ТекущаяСтрока <> ВыбраннаяСтрока Тогда
Сообщить("Невозможно активизировать строку события в журнале при текущем отборе");
КонецЕсли;
ирОбщий.Форма_АктивироватьОткрытьЛкс(ВладелецФормы);
КонецЕсли;
КонецПроцедуры
Процедура ДействияФормыСобытие(Кнопка = Неопределено)
Если ЭлементыФормы.ДеревоОжиданий.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ФормаСобытия = ПолучитьФорму("Событие", , ЭлементыФормы.ДеревоОжиданий.ТекущаяСтрока.МоментВремени);
ФормаСобытия.Открыть();
КонецПроцедуры
Процедура ОбновитьПанельТексты()
ИмяКолонки = ТекущееСвойствоНаПанели();
ЭлементыФормы.ТекстРодительскойСтроки.УстановитьТекст("");
ЭлементыФормы.ТекстВыбраннойСтроки.УстановитьТекст("");
ТекущаяСтрока = ЭлементыФормы.ДеревоОжиданий.ТекущаяСтрока;
Если Истина
И ТекущаяСтрока <> Неопределено
И ТекущаяСтрока.Родитель = Неопределено
Тогда
ЭлементыФормы.ТекстРодительскойСтроки.УстановитьТекст(ТекущаяСтрока[ИмяКолонки]);
ИначеЕсли Истина
И ТекущаяСтрока <> Неопределено
И ТекущаяСтрока.Родитель <> Неопределено
Тогда
ЭлементыФормы.ТекстРодительскойСтроки.УстановитьТекст(ТекущаяСтрока.Родитель[ИмяКолонки]);
ЭлементыФормы.ТекстВыбраннойСтроки.УстановитьТекст(ТекущаяСтрока[ИмяКолонки]);
КонецЕсли;
КонецПроцедуры
Функция ТекущееСвойствоНаПанели()
Перем ИмяКолонки;
Если ЭлементыФормы.ПанельТексты.ТекущаяСтраница = ЭлементыФормы.ПанельТексты.Страницы.ТекстСУБД Тогда
ИмяКолонки = "ТекстСУБД";
ИначеЕсли ЭлементыФормы.ПанельТексты.ТекущаяСтраница = ЭлементыФормы.ПанельТексты.Страницы.ТекстСУБДМета Тогда
ИмяКолонки = "ТекстСУБДМета";
ИначеЕсли ЭлементыФормы.ПанельТексты.ТекущаяСтраница = ЭлементыФормы.ПанельТексты.Страницы.Контекст Тогда
ИмяКолонки = "Контекст";
КонецЕсли;
Возврат ИмяКолонки;
КонецФункции
Процедура ДеревоОжиданийВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДействияФормыСобытие();
КонецПроцедуры
Процедура ДеревоОжиданийПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
ОбновитьПанельТексты();
КонецПроцедуры
Процедура КлсКомандаНажатие(Кнопка)
ирОбщий.ОткрытьСтруктуруФормыЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ПанельТекстыПриСменеСтраницы(Элемент, ТекущаяСтраница)
ОбновитьПанельТексты();
КонецПроцедуры
Процедура ДеревоОжиданийПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
Если ДанныеСтроки.Родитель = Неопределено Тогда
Возврат;
КонецЕсли;
Если ДанныеСтроки.РодительЕстьЖертва Тогда
Картинка = ирКэш.КартинкаПоИмениЛкс("ирВыходящий");
ЦветФона = Новый Цвет(240, 240, 255);
Иначе
Картинка = ирКэш.КартинкаПоИмениЛкс("ирВходящий");
ЦветФона = Новый Цвет(240, 255, 240);
КонецЕсли;
ОформлениеСтроки.Ячейки[0].УстановитьКартинку(Картинка);
ОформлениеСтроки.ЦветФона = ЦветФона;
КонецПроцедуры
Процедура СравнитьТекстыНажатие(Элемент)
ирОбщий.СравнитьЗначенияВФормеЛкс(ЭлементыФормы.ТекстРодительскойСтроки.ПолучитьТекст(), ЭлементыФормы.ТекстВыбраннойСтроки.ПолучитьТекст(),, "Родительское", "Выбранное");
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт
ирОбщий.Форма_ОбработкаОповещенияЛкс(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализТехножурнала.Форма.БлокировкаСУБД");

View File

@ -1,396 +0,0 @@
Перем мСтруктураХраненияСРазмерами;
Функция СохраняемаяНастройкаФормы(выхНаименование, выхИменаСвойств) Экспорт
выхИменаСвойств = "Форма.ПересобратьТекст, Форма.ПереводитьИндексы, Форма.ПереводитьВМета, Форма.ПоказыватьРазмеры";
Возврат Неопределено;
КонецФункции
Процедура КоманднаяПанель1КонсольЗапросов(Кнопка)
Если Не ЗначениеЗаполнено(ЭлементыФормы.Результат.ПолучитьТекст()) Тогда
ОбновитьЗапрос();
КонецЕсли;
ТекстЗапроса = ЭлементыФормы.Результат.ПолучитьТекст();
Если Не ЗначениеЗаполнено(ТекстЗапроса) Тогда
Возврат;
КонецЕсли;
Если ЭтоТекстSDBL И ПереводитьВМета Тогда
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Для Каждого СтрокаПараметра Из Параметры Цикл
Запрос.Параметры.Вставить(СтрокаПараметра.Имя, СтрокаПараметра.Значение);
КонецЦикла;
ирОбщий.ОтладитьЛкс(Запрос);
Иначе
////СоединениеADO = ПодключенияИис.ПолучитьСоединениеADOПоСсылкеИис(Инфобаза.ИнфобазаСУБД,, Ложь);
//СоединениеADO = Новый COMОбъект("ADODB.Connection");
//ирОбщий.ОтладитьЛкс(СоединениеADO,, ТекстЗапроса);
ирОбщий.ОткрытьЗапросСУБДЛкс(ТекстЗапроса,, Параметры);
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанель1ОбновитьЗапрос(Кнопка)
ОбновитьЗапрос();
КонецПроцедуры
Процедура ОбновитьЗапрос()
лТипСУБД = ТипСУБД;
Если ЭтоТекстSDBL Тогда
лТипСУБД = "";
КонецЕсли;
Индексы.Очистить();
СтруктураЗапроса = ПолучитьСтруктуруЗапросаИзТекстаБД(ЭлементыФормы.ТекстБД.ПолучитьТекст(), лТипСУБД, ПересобратьТекст, ПереводитьИндексы, ПереводитьВМета,, ВстраиватьПараметры);
Граница1 = 0; Граница2 = 0; Граница3 = 0; Граница4 = 0;
ЭлементыФормы.Результат.ПолучитьГраницыВыделения(Граница1, Граница2, Граница3, Граница4);
ЭлементыФормы.Результат.УстановитьТекст(СтруктураЗапроса.Текст);
ЭлементыФормы.Результат.УстановитьГраницыВыделения(Граница1, Граница2, Граница3, Граница4);
Если ЗначениеЗаполнено(СтруктураЗапроса.Текст) Тогда
ПанельОсновная = ЭлементыФормы.ПанельОсновная;
ирОбщий.ПрисвоитьЕслиНеРавноЛкс(ПанельОсновная.ТекущаяСтраница, ПанельОсновная.Страницы.Результат);
КонецЕсли;
ЭтаФорма.Параметры = СтруктураЗапроса.Параметры;
ЭтаФорма.Таблицы.Очистить();
ирОбщий.ЗагрузитьВТаблицуЗначенийЛкс(СтруктураЗапроса.Таблицы, ЭтаФорма.Таблицы);
мСтруктураХраненияСРазмерами = ирОбщий.СоздатьОбъектПоПолномуИмениМетаданныхЛкс("Обработка.ирСтруктураХраненияБД");
#Если Сервер И Не Сервер Тогда
мСтруктураХраненияСРазмерами = Обработки.ирСтруктураХраненияБД.Создать();
#КонецЕсли
мСтруктураХраненияСРазмерами.ПоказыватьСУБД = Не ЭтоТекстSDBL;
мСтруктураХраненияСРазмерами.ПоказыватьSDBL = ЭтоТекстSDBL;
мСтруктураХраненияСРазмерами.ПоказыватьРазмеры = ПоказыватьРазмеры;
Если Таблицы.Количество() > 0 Тогда
СтруктураХраненияБД = ирКэш.СтруктураХраненияБДЛкс(Не ЭтоТекстSDBL,, мАдресЧужойСхемыБД);
мСтруктураХраненияСРазмерами.ОбновитьТаблицы();
Для Каждого СтрокаТаблицыБД Из Таблицы Цикл
СтрокаСтруктурыХрания = СтруктураХраненияБД.Найти(СтрокаТаблицыБД.ИмяБД, "КраткоеИмяТаблицыХранения");
Если СтрокаСтруктурыХрания <> Неопределено Тогда
СтрокаТаблицыБД.ИмяБД = СтрокаСтруктурыХрания.ИмяТаблицыХранения;
КонецЕсли;
СтрокаСтруктурыХрания = мСтруктураХраненияСРазмерами.Таблицы.Найти(СтрокаТаблицыБД.ИмяБД, "ИмяТаблицыХранения");
Если СтрокаСтруктурыХрания <> Неопределено Тогда
СтрокаТаблицыБД.КоличествоСтрок = СтрокаСтруктурыХрания.КоличествоСтрок;
СтрокаТаблицыБД.ДанныеKB = СтрокаСтруктурыХрания.РазмерДанные;
СтрокаТаблицыБД.ИндексыKB = СтрокаСтруктурыХрания.РазмерИндексы;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
ирОбщий.СоздатьМенеджерСохраненияНастроекФормыЛкс(ЭтаФорма);
ЭлементыФормы.Таблицы.Колонки.КоличествоСтрок.Видимость = Не ирКэш.ЛиФайловаяБазаЛкс();
ЭтоТекстSDBLПриИзменении();
ОбновитьЗапрос();
ОбновитьДоступность();
ПодключитьОбработчикОжидания("ОбновитьРазмерТекста", 2);
КонецПроцедуры
Процедура ПанельОсновнаяПриСменеСтраницы(Элемент = Неопределено, ТекущаяСтраница = Неопределено)
Если Не ЗначениеЗаполнено(ЭлементыФормы.Результат.ПолучитьТекст()) Тогда
Если ЭлементыФормы.ПанельОсновная.ТекущаяСтраница = ЭлементыФормы.ПанельОсновная.Страницы.Результат Тогда
ОбновитьЗапрос();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ПараметрыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка = Элемент.Колонки.Значение И ЗначениеЗаполнено(ВыбраннаяСтрока.Метаданные) Тогда
ОткрытьЗначение(ВыбраннаяСтрока.Значение);
Иначе
Если Ложь
Или Не ЗначениеЗаполнено(ВыбраннаяСтрока.ЗначениеSDBL)
Или Не ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы.Результат, ВыбраннаяСтрока.ЗначениеSDBL, Истина)
Тогда
ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы.Результат, ВыбраннаяСтрока.Имя, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ОбновлениеОтображения()
ирОбщий.Форма_ОбновлениеОтображенияЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ТаблицыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
КонтекстноеМенюТаблицНайтиВТексте();
СтандартнаяОбработка = Ложь;
КонецПроцедуры
Процедура ТипСУБДПриИзменении(Элемент)
ОбновитьЗапрос();
КонецПроцедуры
Процедура КоманднаяПанель1НовоеОкно(Кнопка)
Форма = ПолучитьФорму("КонверторТекстаСУБД",, Новый УникальныйИдентификатор);
Форма.Открыть();
КонецПроцедуры
Процедура ДействияФормыВыполнить(Кнопка)
ОбновитьЗапрос();
//ЭлементыФормы.ПанельОсновная.ТекущаяСтраница = ЭлементыФормы.ПанельОсновная.Страницы.Результат;
КонецПроцедуры
Процедура ОбновитьРазмерТекста()
ЭтаФорма.КоличествоСимволов = СтрДлина(ЭлементыФормы.ТекстБД.ПолучитьТекст());
КонецПроцедуры
Процедура ЭтоТекстSDBLПриИзменении(Элемент = Неопределено)
ЭлементыФормы.ТипСУБД.Доступность = Не ЭтоТекстSDBL;
КонецПроцедуры
Процедура НастроитьТехножурналПоТексту(Кнопка)
ОткрытьНастройкуТехножурналаДляРегистрацииВыполненияЗапроса(ЭлементыФормы.ТекстБД.ПолучитьТекст(), ЭтоТекстSDBL, ТипСУБД);
КонецПроцедуры
Функция ПолучитьТекстДляПоискаВТехножурнале()
Результат = ЭлементыФормы.ТекстБД.ПолучитьТекст();
Если Не ЭтоТекстSDBL Тогда
Результат = ПолучитьТекстSQLДляПоискаВТехножурнале(Результат);
КонецЕсли;
Возврат Результат;
КонецФункции
Процедура НайтиВТаблицеТехножурнала(Кнопка)
Если ЭтоТекстSDBL Тогда
ИмяЭлементаОтбора = "ТекстSDBL";
Иначе
ИмяЭлементаОтбора = "ТекстСУБД";
КонецЕсли;
ТекстПоиска = ПолучитьТекстДляПоискаВТехножурнале();
//ФормаЖурнала = ВладелецФормы;
ФормаЖурнала = ПолучитьФорму();
ФормаЖурнала.УстановитьРежимИтогов(Ложь);
ФормаЖурнала.ЭлементыФормы.ТаблицаЖурнала.ОтборСтрок.Сбросить();
ЭлементОтбора = ФормаЖурнала.ЭлементыФормы.ТаблицаЖурнала.ОтборСтрок[ИмяЭлементаОтбора];
ЭлементОтбора.ВидСравнения = ВидСравнения.Содержит;
ЭлементОтбора.Значение = ТекстПоиска;
ЭлементОтбора.Использование = Истина;
ФормаЖурнала.Открыть();
КонецПроцедуры
Процедура КлсКомандаНажатие(Кнопка) Экспорт
ирОбщий.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ОбработчикОжиданияСПараметрамиЛкс() Экспорт
ирОбщий.ОбработчикОжиданияСПараметрамиЛкс();
КонецПроцедуры
Процедура ТаблицыПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
ТекущаяСтрокаТаблиц = ЭлементыФормы.Таблицы.ТекущаяСтрока;
Индексы.Очистить();
Если ТекущаяСтрокаТаблиц = Неопределено Тогда
Возврат;
КонецЕсли;
СтруктуруХраненияБД = ирКэш.СтруктураХраненияБДЛкс(Не ЭтоТекстSDBL,, мАдресЧужойСхемыБД);
КлючПоиска = Новый Структура("КраткоеИмяТаблицыХранения", НРег(ТекущаяСтрокаТаблиц.ИмяБД));
НайденныеСтроки = СтруктуруХраненияБД.НайтиСтроки(КлючПоиска);
Если НайденныеСтроки.Количество() > 0 Тогда
СтрокаТаблицыХранения = НайденныеСтроки[0];
Для Каждого ИндексТаблицыБД Из СтрокаТаблицыХранения.Индексы Цикл
СтрокаИндекса = Индексы.Добавить();
СтрокаИндекса.ИндексМета = ирОбщий.ПолучитьПредставлениеИндексаХраненияЛкс(ИндексТаблицыБД,, СтрокаТаблицыХранения, Ложь);
СтрокаИндекса.ИндексБД = ирОбщий.ПолучитьПредставлениеИндексаХраненияЛкс(ИндексТаблицыБД,, СтрокаТаблицыХранения, Истина);
СтрокаИндекса.ИмяХранения = ИндексТаблицыБД.ИмяИндексаХранения;
КонецЦикла;
Индексы.Сортировать("ИндексМета");
КонецЕсли;
КонецПроцедуры
Процедура ИндексыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
ТекущаяСтрокаТаблиц = ЭлементыФормы.Таблицы.ТекущаяСтрока;
Если ТекущаяСтрокаТаблиц = Неопределено Тогда
Возврат;
КонецЕсли;
ТекущаяСтрокаИндексов = ЭлементыФормы.Индексы.ТекущаяСтрока;
Если ТекущаяСтрокаИндексов = Неопределено Тогда
Возврат;
КонецЕсли;
Форма = мСтруктураХраненияСРазмерами.ПолучитьФорму();
Форма.ПараметрИмяТаблицы = ТекущаяСтрокаТаблиц.ИмяМета;
Форма.ПараметрИмяИндексаХранения = ТекущаяСтрокаИндексов.ИмяХранения;
Форма.ПараметрПоказыватьSDBL = Истина;
Форма.ПараметрПоказыватьСУБД = Ложь;
Форма.Открыть();
КонецПроцедуры
Процедура КоманднаяПанель1ПоказатьСтруктуруХранения(Кнопка)
ТекущаяСтрокаТаблиц = ЭлементыФормы.Таблицы.ТекущаяСтрока;
Если ТекущаяСтрокаТаблиц = Неопределено Тогда
Возврат;
КонецЕсли;
Форма = мСтруктураХраненияСРазмерами.ПолучитьФорму();
Форма.ПараметрИмяТаблицы = ТекущаяСтрокаТаблиц.ИмяМета;
Форма.ПараметрПоказыватьSDBL = ЭтоТекстSDBL;
Форма.ПараметрПоказыватьСУБД = Не ЭтоТекстSDBL;
Форма.Открыть();
КонецПроцедуры
Процедура КонтекстноеМенюТаблицНайтиВТексте(Кнопка = Неопределено)
ИмяСтраницы = ЭлементыФормы.ПанельОсновная.ТекущаяСтраница.Имя;
ТекущаяСтрока = ЭлементыФормы.Таблицы.ТекущаяСтрока;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы[ИмяСтраницы], ТекущаяСтрока.ИмяБД, Истина) Тогда
ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы[ИмяСтраницы], ТекущаяСтрока.ИмяМета, Истина);
КонецЕсли;
КонецПроцедуры
Процедура СтруктураКоманднойПанелиНажатие(Кнопка)
ирОбщий.ОткрытьСтруктуруКоманднойПанелиЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ПереводитьВМетаПриИзменении(Элемент)
ОбновитьДоступность();
КонецПроцедуры
Процедура ОбновитьДоступность()
ЭлементыФормы.ПереводитьИндексы.Доступность = ПереводитьВМета;
КонецПроцедуры
Процедура ПослеВосстановленияЗначений()
ОбновитьДоступность();
КонецПроцедуры
Процедура КонтекстноеМенюКонстантаНайтиВТексте(Кнопка)
ИмяСтраницы = ЭлементыФормы.ПанельОсновная.ТекущаяСтраница.Имя;
ТекущаяСтрока = ЭлементыФормы.Параметры.ТекущаяСтрока;
Если ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
Если Ложь
Или Не ЗначениеЗаполнено(ТекущаяСтрока.ЗначениеSDBL)
Или Не ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы[ИмяСтраницы], ТекущаяСтрока.ЗначениеSDBL, Истина)
Тогда
Если ВстраиватьПараметры Тогда
СтрокаПоиска = ТекущаяСтрока.Значение;
Иначе
СтрокаПоиска = ТекущаяСтрока.Имя;
КонецЕсли;
ирОбщий.НайтиПоказатьСтрокуВПолеТекстаЛкс(ЭтаФорма, ЭлементыФормы[ИмяСтраницы], СтрокаПоиска, Истина);
КонецЕсли;
КонецПроцедуры
Процедура ДействияФормыСравнить(Кнопка)
ирОбщий.СравнитьСодержимоеЭлементаУправленияЛкс(ЭтаФорма, ЭлементыФормы[ЭлементыФормы.ПанельОсновная.ТекущаяСтраница.Имя]);
КонецПроцедуры
Процедура ДействияФормыПараметрыСУБД(Кнопка)
ирОбщий.ОткрытьФормуСоединенияСУБДЛкс();
КонецПроцедуры
Процедура ПараметрыПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
КонецПроцедуры
Процедура ПараметрыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ТаблицыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт
ирОбщий.Форма_ОбработкаОповещенияЛкс(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализТехножурнала.Форма.КонверторТекстаСУБД");
ПереводитьИндексы = Истина;
ПереводитьВМета = Истина;
ЭлементыФормы.ТипСУБД.СписокВыбора.Добавить("DBMSSQL");
ЭлементыФормы.ТипСУБД.СписокВыбора.Добавить("DBPOSTGRS");
ЭлементыФормы.ТипСУБД.СписокВыбора.Добавить("DB2");
ЭлементыФормы.ТипСУБД.СписокВыбора.Добавить("DBORACLE");
ЭлементыФормы.ТипСУБД.СписокВыбора.Добавить("DBV8DBENG");
Если ирКэш.ЛиФайловаяБазаЛкс() Тогда
ТипСУБД = "DBV8DBENG";
Иначе
ТипСУБД = "DBMSSQL";
КонецЕсли;

View File

@ -1,74 +0,0 @@

Процедура КнопкаВыполнитьНажатие(Кнопка)
Если ЗначениеЗаполнено(КаталогЖурналаСервера) Тогда
Если Не ирОбщий.ЛиКаталогДоступенЛкс(КаталогЖурналаСервера) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ирОбщий.СохранитьЗначениеЛкс("ирАнализТехножурнала.АвтоочисткаТехножурнала", АвтоочисткаТехножурнала);
ирОбщий.СохранитьЗначениеЛкс("ирАнализТехножурнала.ВыраниватьДатуПоСерверу", ВыраниватьДатуПоСерверу);
ирОбщий.СохранитьЗначениеЛкс("ирАнализТехножурнала.КаталогЖурналаСервера", КаталогЖурналаСервера);
ирОбщий.СохранитьЗначениеЛкс("ирАнализТехножурнала.КаталогТрассировкиЗапросов", КаталогТрассировкиЗапросов);
Закрыть(Истина);
КонецПроцедуры
Процедура ПриОткрытии()
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
ЭтаФорма.АвтоочисткаТехножурнала = ирОбщий.ВосстановитьЗначениеЛкс("ирАнализТехножурнала.АвтоочисткаТехножурнала");
ЭтаФорма.ВыраниватьДатуПоСерверу = ирОбщий.ВосстановитьЗначениеЛкс("ирАнализТехножурнала.ВыраниватьДатуПоСерверу");
ЭтаФорма.КаталогЖурналаСервера = ирОбщий.ВосстановитьЗначениеЛкс("ирАнализТехножурнала.КаталогЖурналаСервера");
ЭтаФорма.КаталогТрассировкиЗапросов = ирОбщий.ВосстановитьЗначениеЛкс("ирАнализТехножурнала.КаталогТрассировкиЗапросов");
ЭлементыФормы.КаталогЖурналаСервера.ТолькоПросмотр = ирКэш.Получить().ЭтоФайловаяБаза;
Если Не ЭлементыФормы.КаталогЖурналаСервера.Доступность Тогда
ЭтаФорма.КаталогЖурналаСервера = "";
КонецЕсли;
КонецПроцедуры
Процедура КаталогЖурналаТрассыПриИзменении(Элемент)
ирОбщий.ПолеВводаСИсториейВыборариИзмененииЛкс(Элемент, ЭтаФорма);
КонецПроцедуры
Процедура КаталогЖурналаТрассыНачалоВыбора(Элемент, СтандартнаяОбработка)
ирОбщий.ПолеФайловогоКаталога_НачалоВыбораЛкс(Элемент, СтандартнаяОбработка);
КонецПроцедуры
Процедура КаталогЖурналаТрассыНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
ирОбщий.ПолеВводаСИсториейВыбора_НачалоВыбораИзСпискаЛкс(Элемент, ЭтаФорма);
КонецПроцедуры
Процедура КаталогЖурналаТрассыОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗапуститьПриложение(Элемент.Значение);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализТехножурнала.Форма.НастройкаЧтения");

View File

@ -1,188 +0,0 @@
Перем мСловарьПланаЗапроса;
Перем мНомерСамойТяжелойОперации;
Процедура ПриОткрытии()
ирОбщий.ФормариОткрытииЛкс(ЭтаФорма);
мСловарьПланаЗапроса = ирОбщий.ТаблицаЗначенийИзТабличногоДокументаЛкс(ОбработкаОбъект.ПолучитьМакет("ОперацииПланаЗапросаMSSQL"),,,, Истина);
#Если Сервер И Не Сервер Тогда
мСловарьПланаЗапроса = Новый ТаблицаЗначений;
#КонецЕсли
мСловарьПланаЗапроса.Индексы.Добавить("Ключ");
КолонкиПланаЗапроса = ирОбщий.ТаблицаЗначенийИзТабличногоДокументаЛкс(ОбработкаОбъект.ПолучитьМакет("КолонкиПланаЗапросаMSSQL"));
#Если Сервер И Не Сервер Тогда
КолонкиПланаЗапроса = Новый ТаблицаЗначений;
#КонецЕсли
Для Каждого СтрокаКолонки Из КолонкиПланаЗапроса Цикл
ЭлементыФормы.ДеревоПлана.Колонки[СтрокаКолонки.ИмяКолонки].ПодсказкаВШапке = СтрокаКолонки.Описание;
ЭлементыФормы.ДеревоПлана.Колонки[СтрокаКолонки.ИмяКолонки].ТекстШапки = СтрокаКолонки.ЗаголовокКолонки;
ЭлементыФормы.ТаблицаПлана.Колонки[СтрокаКолонки.ИмяКолонки].ПодсказкаВШапке = СтрокаКолонки.Описание;
ЭлементыФормы.ТаблицаПлана.Колонки[СтрокаКолонки.ИмяКолонки].ТекстШапки = СтрокаКолонки.ЗаголовокКолонки;
КонецЦикла;
RegExp = ирКэш.Получить().RegExp;
RegExp.Global = Истина;
RegExp.Multiline = Ложь;
ШаблонЧисла = "([^,_\n]*),";
ШаблонНепечатного = "\s*";
RegExp.Pattern = ""
+ ШаблонЧисла + ШаблонНепечатного //1
+ ШаблонЧисла + ШаблонНепечатного //2
+ ШаблонЧисла + ШаблонНепечатного //3
+ ШаблонЧисла + ШаблонНепечатного //4
+ ШаблонЧисла + ШаблонНепечатного //5
+ ШаблонЧисла + ШаблонНепечатного //6
+ ШаблонЧисла + ШаблонНепечатного //7
+ ШаблонЧисла //8
+ "([^\n]*)(?:\n|$)"; //9
РезультатПоиска = RegExp.НайтиВхождения(Текст);
МаркерИнструкции = "|--";
НомерОперации = 1;
ИндексПервойКолонкиПланаЗапрос = 1;
Для Каждого Вхождение Из РезультатПоиска Цикл
ТекстИнструкции = Вхождение.SubMatches(8);
ПозицияПалки = Найти(ТекстИнструкции, МаркерИнструкции);
Уровень = 0;
Если ПозицияПалки > 0 Тогда
Уровень = (ПозицияПалки - 4) / 5 + 1;
ТекстИнструкции = Сред(ТекстИнструкции, ПозицияПалки + СтрДлина(МаркерИнструкции));
Иначе
ТекстИнструкции = СокрЛ(ТекстИнструкции);
КонецЕсли;
СтрокаДерева = ДобавитьСтрокуДерева(Уровень);
СтрокаДерева.Инструкция = ТекстИнструкции;
СтрокаДерева.ОператорАнгл = ирОбщий.ПервыйФрагментЛкс(СтрокаДерева.Инструкция, "(");
СтрокаСловаря = мСловарьПланаЗапроса.Найти(СтрокаДерева.ОператорАнгл, "Ключ");
Если СтрокаСловаря <> Неопределено Тогда
СтрокаДерева.Оператор = СтрокаСловаря.Название;
КонецЕсли;
СтрокаДерева.НомерОперации = НомерОперации;
Для Индекс = 0 По 7 Цикл
СтрокаЗначения = Вхождение.SubMatches(Индекс);
ТипКолонки = ТипЗнч(СтрокаДерева[КолонкиПланаЗапроса[Индекс].ИмяКолонки]);
Если ТипКолонки = Тип("Число") Тогда
Фрагменты = ирОбщий.СтрРазделитьЛкс(СтрокаЗначения, "E");
Если Фрагменты.Количество() > 1 Тогда
СтрокаЗначения = Число(Фрагменты[0]) * pow(10, Число(Фрагменты[1]));
КонецЕсли;
КонецЕсли;
СтрокаДерева[КолонкиПланаЗапроса[Индекс].ИмяКолонки] = СтрокаЗначения;
КонецЦикла;
НомерОперации = НомерОперации + 1;
КонецЦикла;
РасчитатьСтоимостьОпераций(ДеревоПлана.Строки);
ВсеСтрокиДерева = ирОбщий.ВсеСтрокиДереваЗначенийЛкс(ДеревоПлана);
ОператорыПланаЗапроса.Очистить();
Если ДеревоПлана.Строки.Количество() > 0 Тогда
ОбщаяСтоимость = ДеревоПлана.Строки[0].СтоимостьПоддерева;
Для Каждого СтрокаДерева Из ВсеСтрокиДерева Цикл
Если ОбщаяСтоимость = 0 Тогда
СтрокаДерева.СтоимостьПоддереваПроцент = 0;
СтрокаДерева.СтоимостьОперацииПроцент = 0;
Иначе
СтрокаДерева.СтоимостьПоддереваПроцент = СтрокаДерева.СтоимостьПоддерева / ОбщаяСтоимость * 100;
СтрокаДерева.СтоимостьОперацииПроцент = СтрокаДерева.СтоимостьОперации / ОбщаяСтоимость * 100;
КонецЕсли;
ЗаполнитьЗначенияСвойств(ОператорыПланаЗапроса.Добавить(), СтрокаДерева);
КонецЦикла;
ОператорыПланаЗапроса.Сортировать("СтоимостьОперации убыв");
мНомерСамойТяжелойОперации = ОператорыПланаЗапроса[0].НомерОперации;
КонецЕсли;
КонецПроцедуры
Функция РасчитатьСтоимостьОпераций(СтрокиДерева)
Сумма = 0;
Для каждого СтрокаДерева Из СтрокиДерева Цикл
АккумуляторСтоимости = 0;
Если СтрокаДерева.Строки.Количество() > 0 Тогда
АккумуляторСтоимости = РасчитатьСтоимостьОпераций(СтрокаДерева.Строки);
КонецЕсли;
СтоимостьОперации = СтрокаДерева.СтоимостьПоддерева - АккумуляторСтоимости;
СтрокаДерева.СтоимостьОперации = ?(СтоимостьОперации < 0, 0, СтоимостьОперации);
Сумма = Сумма + СтрокаДерева.СтоимостьПоддерева;
КонецЦикла;
Возврат Сумма;
КонецФункции
Функция ДобавитьСтрокуДерева(Уровень)
СтрокиУровня = ДеревоПлана.Строки;
Для Счетчик = 2 По Уровень Цикл
Если СтрокиУровня.Количество() = 0 Тогда
ВызватьИсключение "Некорректный план запроса. Уровень очередной строки больше уровня предыдущей строки на 2 или более";
КонецЕсли;
СтрокиУровня = СтрокиУровня[СтрокиУровня.Количество() - 1].Строки;
КонецЦикла;
Результат = СтрокиУровня.Добавить();
Возврат Результат;
КонецФункции
Процедура ДеревоПланаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Экспорт
ирОбщий.ТабличноеПолеПриВыводеСтрокиЛкс(ЭтаФорма, Элемент, ОформлениеСтроки, ДанныеСтроки);
СтрокаСловаря = мСловарьПланаЗапроса.Найти(ДанныеСтроки.ОператорАнгл, "Ключ");
Если ТипЗнч(СтрокаСловаря.Картинка) = Тип("Картинка") Тогда
ОформлениеСтроки.Ячейки.Инструкция.УстановитьКартинку(СтрокаСловаря.Картинка);
КонецЕсли;
Если ДанныеСтроки.НомерОперации = мНомерСамойТяжелойОперации Тогда
ОформлениеСтроки.ЦветФона = ирОбщий.ПолучитьЦветСтиляЛкс("ирЦветФонаОшибки");
КонецЕсли;
//ирОбщий.ОформитьФонТекущейСтрокиЛкс(Элемент, ОформлениеСтроки, ДанныеСтроки);
КонецПроцедуры
Процедура ДеревоПланаПриАктивизацииСтроки(Элемент)
ирОбщий.ТабличноеПолеПриАктивизацииСтрокиЛкс(ЭтаФорма, Элемент);
Если Элемент.ТекущаяСтрока = Неопределено Тогда
ЭтаФорма.ОписаниеОперации = "";
ЭтаФорма.Инструкция = "";
Возврат;
КонецЕсли;
СтрокаСловаря = мСловарьПланаЗапроса.Найти(Элемент.ТекущаяСтрока.ОператорАнгл, "Ключ");
ЭтаФорма.ОписаниеОперации = СтрокаСловаря.Описание;
ЭтаФорма.Инструкция = Элемент.ТекущаяСтрока.Инструкция;
КонецПроцедуры
Процедура ОбновлениеОтображения()
ирОбщий.Форма_ОбновлениеОтображенияЛкс(ЭтаФорма);
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры
Процедура КлсКомандаНажатие(Кнопка) Экспорт
ирОбщий.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры
Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт
ирОбщий.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Экспорт
ирОбщий.Форма_ОбработкаОповещенияЛкс(ЭтаФорма, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
Процедура ПриЗакрытии()
ирОбщий.ФормариЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры
ирОбщий.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирАнализТехножурнала.Форма.ПланЗапросаMSSQL");

View File

@ -1,204 +0,0 @@

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

View File

@ -1,796 +0,0 @@
{27,
{18,
{
{1,3,
{"ru","Событие техножурнала"},
{"en","Событие техножурнала"},
{"uk","Событие техножурнала"}
},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,0,1,
{0,4,1},1,
{0,2,2},2,
{0,2,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,3,
{"ru","Страница1"},
{"en","Страница1"},
{"uk","Страница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,392,1,1,3,0,0,8,0},
{2,292,0,1,4,0,0,8,0},0,4,5,64,0,
{3,4,
{0}
},0,0,57,0,0},
{0}
},
{2,
{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,0,0,1,1,
{5,d894584a-d9cc-4be9-aa71-c1971412a5d3,30,1,5,
{7,5e9fd000-5f02-4a41-bbf5-6496c4047125,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,0,00000000-0000-0000-0000-000000000000,99,
{1,99,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,1},
{7,630827f8-0a59-4c4f-a571-7a6a2dd1873e,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,3,
{"ru","Найти строку события в таблице журнала"},
{"en","Найти строку события в таблице журнала"},
{"uk","Найти строку события в таблице журнала"}
},
{1,3,
{"ru","Найти строку события в таблице журнала"},
{"en","Найти строку события в таблице журнала"},
{"uk","Найти строку события в таблице журнала"}
},
{4,1,
{0,c7cdd3c0-3879-436a-b145-5e2615e9b3e1},"",-1,-1,1,0,""},1},
{7,9269ae69-e3c0-40bb-9862-18b9e81bdfdf,1,fbe38877-b914-4fd5-8540-07dde06ba2e1,
{6,0,00000000-0000-0000-0000-000000000000,97,
{1,99,357c6a54-357d-425d-a2bd-22f4f6e86c87,2147483647,0},0,1},0,1},
{7,30fd7891-5ec3-4a6e-a764-7685f8c1b05a,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,3,
{"en","Менеджер табличного поля"},
{"ru","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},
{1,3,
{"en","Менеджер табличного поля"},
{"ru","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},
{4,3,
{0},"",-1,-1,0,
{
{#base64:R0lGODlhEAAQADMAACH5BAEAAAEALAAAAAAQABAAo////wEAAK6u5MHB60pKwoaG
1wAAzOrq+AC0AzY2oHJy0AAAAF1dyQAAAAAAAAAAAARzkMhJU7iYDMBHUYkSINil
AR4RjghZaoUqtnQZaGuwBIZuFwOC6NLrBTgCAJBwACQBhmZAQBUsC1WBAXt0KoPN
ZxRwxH4TBe9gS0YqNWHOuJxUFdLJdbr7PDS9UFJKeQOFTgaIiHwcjF6JB3QohRt5
BgxkEQA7}
},0,""},1},
{7,49155cc9-e324-439e-b17e-743f8dce7485,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,3,
{"ru","Сравнить результат с предыдущим переданным для сравнения"},
{"en","Сравнить результат с предыдущим переданным для сравнения"},
{"uk","Сравнить результат с предыдущим переданным для сравнения"}
},
{1,3,
{"ru","Сравнить результат с предыдущим переданным для сравнения"},
{"en","Сравнить результат с предыдущим переданным для сравнения"},
{"uk","Сравнить результат с предыдущим переданным для сравнения"}
},
{4,1,
{0,8c325feb-0b3d-4094-aa2f-917b484044a5},"",-1,-1,0,0,""},1},1,
{5,b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,0,5,630827f8-0a59-4c4f-a571-7a6a2dd1873e,
{8,"НайтиВЖурнале",0,1,
{1,3,
{"ru","Найти в журнале"},
{"en","Найти в журнале"},
{"uk","Найти в журнале"}
},1,d894584a-d9cc-4be9-aa71-c1971412a5d3,28,1e2,0,0,1,0,0,0,0},49155cc9-e324-439e-b17e-743f8dce7485,
{8,"Сравнить",0,3,
{1,3,
{"ru","Сравнить"},
{"en","Сравнить"},
{"uk","Сравнить"}
},1,d894584a-d9cc-4be9-aa71-c1971412a5d3,26,1e2,0,0,1,0,0,0,0},30fd7891-5ec3-4a6e-a764-7685f8c1b05a,
{8,"МенеджерТабличногоПоля",0,5,
{1,3,
{"ru","Менеджер табличного поля"},
{"en","Менеджер табличного поля"},
{"uk","Менеджер табличного поля"}
},1,d894584a-d9cc-4be9-aa71-c1971412a5d3,29,1e2,0,0,1,0,0,0,0},9269ae69-e3c0-40bb-9862-18b9e81bdfdf,
{8,"Действие1",0,1,
{1,1,
{"#","Действие1"}
},0,d894584a-d9cc-4be9-aa71-c1971412a5d3,24,1e2,0,0,1,0,0,0,0},5e9fd000-5f02-4a41-bbf5-6496c4047125,
{8,"Действие2",0,1,
{1,1,
{"#","Действие2"}
},0,d894584a-d9cc-4be9-aa71-c1971412a5d3,25,1e2,0,0,1,0,0,0,0},
{2,0,
{0}
}
}
},b78f2e80-ec68-11d4-9dcf-0050bae2bc79,4,9d0a2e40-b978-11d4-84b6-008048da06df,0,0,0}
},
{8,0,0,400,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,0,1,1,0},
{14,"ДействияФормы",4294967295,0,0,0},
{0}
},
{ea83fe3a-ac3c-4cce-8045-3dddf35b28b1,4,
{5,
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
},
{
{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,2,0},
{19,117644301,
{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,0,
{6,
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","№"},
{"en","№"},
{"uk","№"}
},
{1,0},
{1,0},25.00000000000001,6,-1,-1,-1,12590594,
{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",
{"N",10,0,0}
},0,1,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"Порядок","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","Свойство"},
{"en","Свойство"},
{"uk","Свойство"}
},
{1,0},
{1,0},67,0,-1,-1,-1,12590594,
{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,"СвойствоСиноним",
{},10,0,
{1,0},
{"Pattern",
{"S"}
},0,1,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"СвойствоСиноним","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","Имя свойства"},
{"en","Имя свойства"},
{"uk","Имя свойства"}
},
{1,0},
{1,0},88.9999999999999,2,-1,-1,-1,12590594,
{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,"СвойствоИмя",
{},13,0,
{1,0},
{"Pattern",
{"S"}
},0,1,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"СвойствоИмя","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","Значение"},
{"en","Значение"},
{"uk","Значение"}
},
{1,0},
{1,0},85.9999999999998,1,-1,-1,-1,13647362,
{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,"Значение",
{},13,0,
{1,0},
{"Pattern",
{"B"},
{"S"},
{"D"},
{"N",20,0,1}
},0,10,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"Значение","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","Описание свойства"},
{"en","Описание свойства"},
{"uk","Описание свойства"}
},
{1,0},
{1,0},199.9999999999998,5,-1,-1,-1,13639170,
{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,"ОписаниеСвойства1",
{},29,0,
{1,0},
{"Pattern",
{"S"}
},0,2,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"ОписаниеСвойства","","",0}
},
{737535a4-21e6-4971-8513-3e3173a9fedd,
{8,
{8,
{18,
{1,3,
{"ru","Имя в таблице"},
{"en","Имя в таблице"},
{"uk","Имя в таблице"}
},
{1,0},
{1,0},1e2,4,-1,-1,-1,12589570,
{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,"ИмяВТаблице",
{},15,0,
{1,0},
{"Pattern",
{"S"}
},0,1,00000000-0000-0000-0000-000000000000,0,0,0,0,0},
{-1},
{-1},
{-1}
},"ИмяВТаблице","","",0}
}
},0,0,0,0,0,0,0,100,1,2}
},
{342cf854-134c-42bb-8af9-a2103d5d9723,
{5,0,0,1}
},
{3,
{34,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}
}
}
},
{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}
}
}
},
{47,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,392,292,1,
{0,
{2,-1,6,0},
{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,1,2,0,0},
{14,"ЗначенияСвойств",4294967295,0,0,0},
{0}
}
}
},400,300,1,0,1,4,4,143,400,300,96},
{
{2},4,
{3,
{
{1},1,0,1,"ЗначенияСвойств",
{"Pattern",
{"#",acf6192e-81ca-46ef-93a6-5a6968b78663}
}
},
{
{2},0,0,1,"ОбработкаОбъект",
{"Pattern",
{"#",5d30f6b7-7d03-4cf5-a3af-38829fa46c02}
}
},
{
{3},0,0,1,"ТекущееСвойство",
{"Pattern",
{"S"}
}
}
},
{1,
{4,
{1,
{1}
}
}
}
},
{59d6c227-97d3-46f6-84a0-584c5a2807e1,1,
{2,0,
{0,0},
{0},1}
},
{2,
{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}
}
}
},
{70010,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,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

@ -1,96 +0,0 @@
Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.
КонецПроцедуры
Процедура ЗагрузитьСхемуНажатие(Элемент)
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ВыборФайла.Фильтр = "(*.zip)|*.zip";
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
НоваяСхема = Неопределено;
Попытка
ЧтениеZip = Новый ЧтениеZipФайла(ВыборФайла.ПолноеИмяФайла);
ЧтениеZip.Извлечь(ЧтениеZip.Элементы[0], КаталогВременныхФайлов());
ИмяВременногоФайла = КаталогВременныхФайлов() + "\" + ЧтениеZip.Элементы[0].Имя;
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяВременногоФайла);
Структура = СериализаторXDTO.ПрочитатьXML(Чтение);
Чтение.Закрыть();
УдалитьФайлы(ИмяВременногоФайла);
Если Структура.Свойство("SDBL") И Структура.Свойство("СУБД") Тогда
НоваяСхема = Структура;
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
Если НоваяСхема = Неопределено Тогда
Сообщить("Неверный формат файла", СтатусСообщения.Внимание);
Иначе
УстановитьНовуюСхему(НоваяСхема);
КонецЕсли;
КонецПроцедуры
Процедура ОбновитьДоступность()
ЧужаяСхемаБД = ирОбщий.ПолучитьЧужуюСхемуБДЛкс(мАдресЧужойСхемыБД);
ЭтаФорма.ИспользоватьЧужуюСхему = ЧужаяСхемаБД <> Неопределено;
ЭлементыФормы.ИспользоватьЧужуюСхему.Доступность = ИспользоватьЧужуюСхему;
Если ЧужаяСхемаБД <> Неопределено Тогда
ЭтаФорма.СтрокаСоединенияБазы = ЧужаяСхемаБД.СтрокаСоединения;
КонецЕсли;
КонецПроцедуры
Процедура ИспользоватьЧужуюСхемуПриИзменении(Элемент)
УстановитьНовуюСхему(Неопределено);
КонецПроцедуры
Процедура УстановитьНовуюСхему(НоваяСхема)
Если НоваяСхема = Неопределено Тогда
мАдресЧужойСхемыБД = "";
Иначе
мАдресЧужойСхемыБД = ПоместитьВоВременноеХранилище(НоваяСхема, Новый УникальныйИдентификатор("bbcb1c79-cda3-4d69-a57a-0f46e4e12f5f"));
КонецЕсли;
Если НоваяСхема = Неопределено Тогда
ЭтаФорма.СтрокаСоединенияБазы = Неопределено;
ирОбщий.ОбновитьПовторноИспользуемыеЗначенияЛкс();
Иначе
ЭтаФорма.СтрокаСоединенияБазы = НоваяСхема.СтрокаСоединения;
КонецЕсли;
ВыбранныеСтроки = ТаблицаЖурнала.НайтиСтроки(Новый Структура("СвойстваСИменамиМетаданныхАктуальны", Истина));
Для Каждого ВыбраннаяСтрока Из ВыбранныеСтроки Цикл
ВыбраннаяСтрока.СвойстваСИменамиМетаданныхАктуальны = Ложь;
КонецЦикла;
ОбновитьДоступность();
КонецПроцедуры
Процедура ПриОткрытии()
ОбновитьДоступность();
КонецПроцедуры
Процедура СохранитьВФайлНажатие(Элемент)
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Если Не ВыборФайла.Выбрать() Тогда
Возврат;
КонецЕсли;
ИмяФайла = ВыборФайла.Каталог + "\Сохранение схемы БД в файл.epf";
ПолучитьМакет("ОбработкаВыгрузкиСхемыБД").Записать(ИмяФайла);
Сообщить("Обработка сохранена в файл """ + ИмяФайла + """");
КонецПроцедуры
Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
ирОбщий.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);
КонецПроцедуры

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