Не логичное поведение типовой Розница 2.1 или куда делась команда
В локализованной версии Розница 2.1 (Розница для Кыргызстана) столкнулся со следующим явлением. При небольшой модернизации подсистемы печати, в Справочник Номенклатура решил добавить дополнительную Команду "ПечатьЭтикеток". Существующая команда "ПечатьЦенниковИЭтикеток" не устраивает тем, что открывает соответствующую обработку при печати из справочника в Режиме печати Ценников и Этикеток, и постоянно приходится это режим менять, что не очень удобно.
Скопировал существующую команду, подправил режим открытия обработки и...
После запуска новой команды в нужном месте (Печать) не оказалось. Странно, начал смотреть. Первое, что бросилось в глаза у бывших команд - это Реквизит Группа, установленный как: Панель навигации формы.Перейти, странно, что именно Перейти, а не Печать, хотя команды появляются в группе команд печати. Так как команду я скопировал, то у моей команды остались те же параметры, но она, как существующие в группе Печать появиться не захотела. Далее я установил у своей команды Командная панель формы.Печать и она, как и положено появилась там, где и следует. Ради эксперимента поменял это реквизит у ранее существовавших команд и как результат, эти команды в группе команд "Печать" появились дважды. Проблему я конечно решил оставив у своей команды Группу Печать, а тем, которые были, вернул прежние значения, и все прекрасно работает.
Но вот не дает покоя то обстоятельство, что я так и не понял сути явления, что есть не хорошо. Хотелось бы знать, почему в типовой сделано так, и каким образом команды появляются в нужном месте.
Скопировал существующую команду, подправил режим открытия обработки и...
После запуска новой команды в нужном месте (Печать) не оказалось. Странно, начал смотреть. Первое, что бросилось в глаза у бывших команд - это Реквизит Группа, установленный как: Панель навигации формы.Перейти, странно, что именно Перейти, а не Печать, хотя команды появляются в группе команд печати. Так как команду я скопировал, то у моей команды остались те же параметры, но она, как существующие в группе Печать появиться не захотела. Далее я установил у своей команды Командная панель формы.Печать и она, как и положено появилась там, где и следует. Ради эксперимента поменял это реквизит у ранее существовавших команд и как результат, эти команды в группе команд "Печать" появились дважды. Проблему я конечно решил оставив у своей команды Группу Печать, а тем, которые были, вернул прежние значения, и все прекрасно работает.
Но вот не дает покоя то обстоятельство, что я так и не понял сути явления, что есть не хорошо. Хотелось бы знать, почему в типовой сделано так, и каким образом команды появляются в нужном месте.
По теме из базы знаний
Найденные решения
Вобщем разрешилась моя загадка. Все достаточно просто, я бы даже сказал, банально. Команда, добавляется не программно, а обычным способом в графическом интерфейсе конфигуратора. При этом если у команды свойство Группа выставить в значение: "Командная панель формы.Печать", то она без всяких дополнительных манипуляций попадает в соответствующую группу команд на форме. Собственно я всегда так и делаю, и поэтому за давностью событий совершенно забыл об этой особенности, а именно, если свойство группу группы присвоить другое значение (в моем случае это было "Панель навигации формы.Перейти"), то нужно еще произвести пару манипуляций с этой командой, чтобы она очутилась в нужном месте. А именно нужно в левом верхнем окне Дизайнера форм переключиться с вкладки "Элементы" на "Командный интерфейс", а на правом открыть "Команды" -> "Глобальные команды", и в окне "Параметризуемые" отыскать нужную команду и перетащить ее в левое окно в необходимое место. Эту манипуляцию проделать для всех форм, в которых необходимо отображение данной команды.
Но вот чего я так и не понял, так это того, что нафига так было извращаться разработчикам этой конфигурации, когда можно было просто бес всяких заморок сразу в свойствах команды Группа выставить значение "Командная панель формы.Печать". Может тот способ, который применили разработчики несет какие то дополнительные выгоды? Была же видимо причина сделать именно так.
Но вот чего я так и не понял, так это того, что нафига так было извращаться разработчикам этой конфигурации, когда можно было просто бес всяких заморок сразу в свойствах команды Группа выставить значение "Командная панель формы.Печать". Может тот способ, который применили разработчики несет какие то дополнительные выгоды? Была же видимо причина сделать именно так.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Ничего подобного я не нашел.
Модуль менеджера справочника Номенклатура содержит только эти нижеперечисленные функции:
Ставил точки останова на Процедурах и Функциях Общего Модуля УправлениеПечатью
Не одна не сработала при открывании формы списка или элемента справочника. Кроме этого возникает вопрос, Если это делается кодом, то почему этот код игнорирует мою команду?
В общем пока ответа я не нашел и вопрос остается открытым.
Модуль менеджера справочника Номенклатура содержит только эти нижеперечисленные функции:
Функция РеквизитыНеРедактируемыеВГрупповойОбработке
Функция ПроверитьИспользованиеХарактеристик
Функция ПроверитьПринадлежностьХарактеристикиИУпаковкиВладельцу
Функция ПолучитьБлокируемыеРеквизитыОбъекта
Функция ПолучитьРеквизитыНоменклатуры
Функция РеквизитыРедактируемыеВГрупповойОбработке
Функция ИспользуютсяПодарочныеСертификаты
Ставил точки останова на Процедурах и Функциях Общего Модуля УправлениеПечатью
Процедура ПриСозданииНаСервере
Функция КомандыПечатиФормы
Функция СоздатьКоллекциюКомандПечати
В общем пока ответа я не нашел и вопрос остается открытым.
Провел еще раз исследование всех потенциально возможных мест, откуда бы эти команды потенциально могли добавляться с расстановкой в этих местах точек останова, но ни одна из них не сработала.
Вот кстати версия БСП в этой конфигурации:2.2.5.31, если это чем нибудь поможет.
Также провел следующий эксперимент:
Переименовал существующую команду "ПечатьЦенниковИЭтикеток" -> "НеПечатьЦенниковИЭтикеток2",
Подправил синоним на - Нафигачить ценников и этикеток...,
Поставил режим "Остановка по ошибке" и ...
Опять все прекрасно отработало и команда появилась на своем прежнем месте без всяких приключений и возникновения ошибок. Если бы имя команды было жестко задано в коде, то возникла бы ошибка и команда бы не появилась на форме. Если допустим команда все же добавляется кодом, то имя ее задано явно не жестко. Если при этом этот код производит поиск команд и делает их добавление в командный интерфейс формы, то возникает резонный вопрос, почему переименованную команду он в этот интерфейс добавляет, а мою игнорирует? Что то тут явно не чисто...
Вот кстати версия БСП в этой конфигурации:2.2.5.31, если это чем нибудь поможет.
Также провел следующий эксперимент:
Переименовал существующую команду "ПечатьЦенниковИЭтикеток" -> "НеПечатьЦенниковИЭтикеток2",
Подправил синоним на - Нафигачить ценников и этикеток...,
Поставил режим "Остановка по ошибке" и ...
Опять все прекрасно отработало и команда появилась на своем прежнем месте без всяких приключений и возникновения ошибок. Если бы имя команды было жестко задано в коде, то возникла бы ошибка и команда бы не появилась на форме. Если допустим команда все же добавляется кодом, то имя ее задано явно не жестко. Если при этом этот код производит поиск команд и делает их добавление в командный интерфейс формы, то возникает резонный вопрос, почему переименованную команду он в этот интерфейс добавляет, а мою игнорирует? Что то тут явно не чисто...
Вобщем разрешилась моя загадка. Все достаточно просто, я бы даже сказал, банально. Команда, добавляется не программно, а обычным способом в графическом интерфейсе конфигуратора. При этом если у команды свойство Группа выставить в значение: "Командная панель формы.Печать", то она без всяких дополнительных манипуляций попадает в соответствующую группу команд на форме. Собственно я всегда так и делаю, и поэтому за давностью событий совершенно забыл об этой особенности, а именно, если свойство группу группы присвоить другое значение (в моем случае это было "Панель навигации формы.Перейти"), то нужно еще произвести пару манипуляций с этой командой, чтобы она очутилась в нужном месте. А именно нужно в левом верхнем окне Дизайнера форм переключиться с вкладки "Элементы" на "Командный интерфейс", а на правом открыть "Команды" -> "Глобальные команды", и в окне "Параметризуемые" отыскать нужную команду и перетащить ее в левое окно в необходимое место. Эту манипуляцию проделать для всех форм, в которых необходимо отображение данной команды.
Но вот чего я так и не понял, так это того, что нафига так было извращаться разработчикам этой конфигурации, когда можно было просто бес всяких заморок сразу в свойствах команды Группа выставить значение "Командная панель формы.Печать". Может тот способ, который применили разработчики несет какие то дополнительные выгоды? Была же видимо причина сделать именно так.
Но вот чего я так и не понял, так это того, что нафига так было извращаться разработчикам этой конфигурации, когда можно было просто бес всяких заморок сразу в свойствах команды Группа выставить значение "Командная панель формы.Печать". Может тот способ, который применили разработчики несет какие то дополнительные выгоды? Была же видимо причина сделать именно так.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот