Мелкие исправления конфигурации КД2, которые облегчают жизнь
Что доработано
- Изменена надпись в заголовке окна. В типовых решениях есть возможность указать заголовок программы. На этот заголовок удобно ориентироваться, когда у вас открыто несколько баз 1С;
- Отключено автоматическое создание ПКС для всех объектов, кроме перечислений. Это исключает ситуацию, когда случайно не сняв галку вы рекурсивно создаете ПКО для всей конфигурации;
- Исправлена ошибка из-за которой автоматически не проставляются ПКО в обработке Автонастройка правил конвертации свойств.
Изменение заголовка окна базы
В модуле обычного приложения делается вставка в процедуру ПриНачалеРаботыСистемы()
Процедура ПриНачалеРаботыСистемы()
АвторизацияТекущегоПользователя();
ВыполнитьОбновлениеИнформационнойБазы();
ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить()="");
// Открытие Панели функций
ОткрытьПанельФункций = УправлениеПользователями.ПолучитьБулевоЗначениеПоУмолчанию(глТекущийПользователь, "ОткрыватьПриЗапускеПанельФункций", Истина);
Если ОткрытьПанельФункций И (НЕ ПервыйЗапуск) Тогда
Обработки.ПанельФункций.ПолучитьФорму().Открыть();
КонецЕсли;
// Открытие формы настройки правил регистрации
ОткрытьПравилаРегистрации = УправлениеПользователями.ПолучитьБулевоЗначениеПоУмолчанию(глТекущийПользователь, "ОткрыватьПравилаРегистрации", Ложь);
Если ОткрытьПравилаРегистрации Тогда
ОткрытьПравилаРегистрации();
КонецЕсли;
// Открытие формы настройки правил обмена
ОткрытьПравилаОбмена = УправлениеПользователями.ПолучитьБулевоЗначениеПоУмолчанию(глТекущийПользователь, "ОткрыватьПравилаОбмена", Ложь);
Если ОткрытьПравилаОбмена Тогда
ОткрытьПравилаОбмена();
КонецЕсли;
// Моя вставка, Крынецкий, 30.03.2024. Установим заголовок приложения, чтобы не путать его в командной панели Windows
УстановитьЗаголовокПриложения(Метаданные.Синоним + "(" + Метаданные.Версия + ")");
// Конец моей вставки
КонецПроцедуры // ПриНачалеРаботыСистемы()
Отключение автосоздания ПКС
Вставка в процедуре общего модуля ОбщегоНазначения:
Процедура РекурсивноеСозданиеПКО(Объект, ЗадаватьВопросПользователю = Истина,
СписокСозданныхПКО = Неопределено, ДляПодчиненныхОбъектовСоздаватьПКСТолькоДляПолейПоиска = Истина) Экспорт
// если нет источника, то и создавать автоматически ничего не получится
Если Объект.ЭтоГруппа
ИЛИ НЕ ЗначениеЗаполнено(Объект.Источник) Тогда
Возврат;
КонецЕсли;
// Моя вставка, Крынецкий 2024-04-12. Отключим автоматическое создание правил конвертации свойств для всех, кроме перечислений
Если Лев(Объект.ТипИсточника, 18) = "ПеречислениеСсылка" И
Лев(Объект.ТипПриемника, 18) = "ПеречислениеСсылка" Тогда
Если СписокСозданныхПКО = Неопределено Тогда
СписокСозданныхПКО = Новый СписокЗначений;
КонецЕсли;
АвтоматическиСоздатьПКСПКЗПоПравилу(Объект, Истина, СписокСозданныхПКО, Ложь, ДляПодчиненныхОбъектовСоздаватьПКСТолькоДляПолейПоиска);
СписокСозданныхПКО.Добавить(Объект.Ссылка);
Возврат
Иначе
Возврат
КонецЕсли;
Если ЗадаватьВопросПользователю Тогда
#Если Клиент Тогда
// пользователю нужно задать вопрос о рекурсивном автоматическом создании ПКС, ПКЗ
ОтветПользователя = Вопрос("Создать автоматически правила конвертации свойств, значений и подчиненных объектов?",
РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
Если ОтветПользователя <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
#КонецЕсли
КонецЕсли;
Если СписокСозданныхПКО = Неопределено Тогда
СписокСозданныхПКО = Новый СписокЗначений;
КонецЕсли;
АвтоматическиСоздатьПКСПКЗПоПравилу(Объект, Истина, СписокСозданныхПКО, Ложь, ДляПодчиненныхОбъектовСоздаватьПКСТолькоДляПолейПоиска);
СписокСозданныхПКО.Добавить(Объект.Ссылка);
КонецПроцедуры
Автоматически проставить ПКО в обработке Автонастройка правил конвертации свойств
Исправление формальных параметров в процедуре Обработка.АвтонастройкаПравилКонвертацииСвойств.МодульОбъекта
// Моя вставка Крынецкий 13.12.18. Поменяем местами формальные параметры
//Функция ОпределитьПоТипамНаличиеПКО(ТипПриемника, ТипИсточника) Экспорт
Функция ОпределитьПоТипамНаличиеПКО(ТипИсточника, ТипПриемника) Экспорт
// Конец моей вставки
СтрокиТаблицы = мТаблицаНайденныхПКО.НайтиСтроки(Новый Структура("Источник, Приемник", ТипИсточника, ТипПриемника));
Если СтрокиТаблицы.Количество() <> 0 Тогда
НайденноеПравилоКО = СтрокиТаблицы[0].СсылкаНаПКО;
Иначе
НайденноеПравилоКО = Неопределено;
КонецЕсли;
Возврат НайденноеПравилоКО;
КонецФункции
Полезные инструменты для конвертации данных
Правила обмена — как на ладони!
Замена конфигурации в правилах переноса данных
Конвертация данных 2: удалить неиспользуемые ПКО
Все изменения тестировались на платформе 8.3.13.1513.
Добрый день.
Здесь сравнивается тип источника и приемника с перечислением?
(1) Да, сравнивается строка, и да, похоже, что здесь ошибка. Поправлю. Спасибо
Можно еще план видов характеристик так же?
Полезно. Надо втащить себе.
В полезных инструментах 1 и 3 ссылки одинаковые
(5) Спасибо! Поправил.
(2) Что-то я не понял… Сказали, что поправите, а в тексте перед глазами те же две строки мутного содержания
Или Вы только в коде конфигурации в файле загрузки поправили? Надо бы и в тексте статьи тоже…
(7) Спасибо. Поправил и в тексте и в приложенном файле