Добрый день сообщество! Бьюсь уже очень долго над этой проблемой(видно по заголовку)). Я связываю именно с выходом 23-й платформы(до апреля на всех версиях платформы расширение рабочее), возможно поменялась логика работы платформ касаемо расширений с глобальными параметризуемыми командами(новичок в 1С просьба сильно не пинать). Обновилась сама форма документа, но это вряд ли повлияло на видимость пункта печатной формы - обновлял форму документа, добавлял(переопределял) заново команду печати, связывал как-то с отсутствием необходимых прав (включал галку в роли в пункте "Независимые права подчиненных объектов"). Уважаемые экперты, просьба помочь!
Это код команды печати расширения.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.АвтоМасштаб=Истина;
ТабДок.КоличествоЭкземпляров=2;
//ТабДок.Показать("Спецификация");
//
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Спецификация к договору");
ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Спецификация к договору");
ПечатнаяФорма.ТабличныйДокумент = ТабДок;
ПечатнаяФорма.СинонимМакета="Спецификация к договору";
КлючУникальности = Строка(Новый УникальныйИдентификатор);
ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
ПараметрыОткрытия.Вставить("ИменаМакетов","Спецификация к договору");
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, , КлючУникальности);
//
//ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Документы.СчетНаОплатуПокупателю.ПечатьСпецификации(ТабДок, ПараметрКоманды);
КонецПроцедуры
(41)Вместо использования в расширении команды из метаданных документа, печать реализована с помощью стандартного функционала БСП.
А именно:
- в процедуру ДобавитьКомандыПечати модуля менеджера документа добавлена команда;
- в процедуре Печать модуля менеджера документа добавлен вызов процедуры печати для этой команды.
Почему в расширении на актуальной платформе не работают команды из метаданных документа разобраться не получилось. Похоже на баг платформы.
(3)
(6)
На платформе 8.3.21.1644 первый снимок, платформа 8.3.21.1775(выход в апреле) на втором. Не подгружается второй скрин но в целом там без пункта "Эни_спецификация"
(8) Через Еще - Изменить форму - ваша команда есть в подменю?
Если вынести команду из подменю Печать в другое место, будет отображаться?
В ПриСозданииНаСервере, в самом конец процедуры проверьте, есть ли ваша команда в подменю Печать.
Если есть, то у нее вероятно, выключена видимость. Тогда включайте видимость в ПриСозданииНаСервереПосле. Как костыльный вариант.
Другой вариант - реализовать печатную форму стандартным образом, согласно методике БСП:
В модуле менеджера документа в процедуре ДобавитьКомандыПечати - добавляете свою команду, по аналогии.
В модуле менеджера документа разместить процедуру печати вашей печатной формы.
В модуле менеджера документа в процедуре Печать вызывать вашу печатную форму по аналогии с остальными.
(10) По первым двум вопросам - изменение места не меняет ситуацию и по кнопке "Изменить форму" нет в списке моей кнопки, даже если выношу в табличную часть "Товары" отдельной кнопкой.
Третий вопрос уточните пожалуйста процедура "ПриСозданииНаСервере" модуля формы документа?
У меня этой процедуры нет в расширении и не понятно как она влияет на печать формы? Какой-то блок новостей...
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.КоманднаяПанель = Элементы.ГруппаКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
ОтправкаПочтовыхСообщений.ПриСозданииНаСервере(ЭтотОбъект);
Если Не ЗначениеЗаполнено(Объект.ВидОперации) Тогда
// Обработчик не завершил обновление документов
Объект.ВидОперации = Перечисления.ВидыОперацийСчетаПокупателю.ТоварыИУслуги;
КонецЕсли;
ЭтоТоварыИУслуги = Объект.ВидОперации <> Перечисления.ВидыОперацийСчетаПокупателю.ОсновныеСредства;
ГруппаСоздатьНаОсновании = Элементы.ГруппаГлобальныеКоманды.ПодчиненныеЭлементы.Найти("ФормаСоздатьНаОсновании");
Документы.СчетНаОплатуПокупателю.УстановитьВидимостьСоздаваемыхНаОсновании(ГруппаСоздатьНаОсновании, ЭтоТоварыИУслуги);
Если Параметры.Свойство("ПравилоПовторения") И ЗначениеЗаполнено(Параметры.ПравилоПовторения) Тогда
ПравилоПовторения = Параметры.ПравилоПовторения;
НадписьПовторение = НадписьПовторение(ПравилоПовторения, Параметры.Ключ.Пустая());
Иначе
ЗаполнитьПравилоПовторенияИНадпись();
КонецЕсли;
ПравоРедактированияСрокаОплаты = СрокиОплатыДокументов.ПравоРедактирования();
Если Параметры.Ключ.Пустая() Тогда
ПодготовитьФормуНаСервере();
КонецЕсли;
СсылкаДляПереходаНаКарту = УправлениеКонтактнойИнформациейБП.СтрокаСсылкиПоказатьНаКарте();
// Активизировать первую непустую табличную часть
СписокТабличныхЧастей = Новый СписокЗначений;
СписокТабличныхЧастей.Добавить("Товары", "Товары");
СписокТабличныхЧастей.Добавить("ВозвратнаяТара", "ВозвратнаяТара");
АктивизироватьТабличнуюЧасть = ОбщегоНазначенияБПВызовСервера.ПолучитьПервуюНепустуюВидимуюТабличнуюЧасть(
ЭтотОбъект, СписокТабличныхЧастей);
ОбщегоНазначенияБПВызовСервера.АктивизироватьЭлементФормы(ЭтотОбъект, АктивизироватьТабличнуюЧасть);
УстановитьУсловноеОформление();
// ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
ПроверкаКонтрагентов.ПриСозданииНаСервереДокумент(ЭтотОбъект, Параметры);
// Конец ИнтернетПоддержкаПользователей.РаботаСКонтрагентами
УстановитьОтображениеЗакладок();
Элементы.НовыйДоговор.Видимость = ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Справочники.ДоговорыКонтрагентов);
Если Не ПравоРедактированияСрокаОплаты Тогда
Элементы.СрокОплаты.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
Элементы.СрокОплаты.ТолькоПросмотр = Истина;
КонецЕсли;
Если НЕ ПравоДоступа("Просмотр", Метаданные.ОбщиеФормы.СрокиОплатыПокупателями) Тогда
// В подсказке отображается ссылка на общую форму СрокиОплатыПокупателям.
// Без этой ссылки подсказка теряет смысл, поэтому в случае, если пользователю
// недоступна форма, то не показываем подсказку.
Элементы.СрокОплаты.ОтображениеПодсказки = ОтображениеПодсказки.Нет;
КонецЕсли;
// ИнтернетПоддержкаПользователей.Новости.КонтекстныеНовости_ПриСозданииНаСервере
ИдентификаторыСобытийПриОткрытии = Новый Массив;
ИдентификаторыСобытийПриОткрытии.Добавить("ПриОткрытии");
Если УправлениеПечатьюБП.ИспользуетсяИзмененныйМакет(Объект.Ссылка) Тогда
ИдентификаторыСобытийПриОткрытии.Добавить("ПриОткрытии_ИспользуетсяИзмененныйМакет");
КонецЕсли;
ОбработкаНовостейПереопределяемый.КонтекстныеНовости_ПриСозданииНаСервере(
ЭтотОбъект,
?(ЭтоТоварыИУслуги, "БП.Документ.СчетНаОплатуПокупателю", "БП.Документ.СчетНаОплатуПокупателюОС"),
"ФормаДокумента",
НСтр(?(ЭтоТоварыИУслуги, "ru='Новости: Счет покупателю'", "ru='Новости: Счет покупателю ОС'")),
ИдентификаторыСобытийПриОткрытии);
// Конец ИнтернетПоддержкаПользователей.Новости.КонтекстныеНовости_ПриСозданииНаСервере
// Подсистема "ОбменСКонтрагентами".
ОбменСКонтрагентамиБП.КомандыЭДО_ФормаДокумента(ЭтотОбъект);
// Конец подсистема "ОбменСКонтрагентами".
УправлениеПанельюПодсказки.ПриСозданииНаСервере(ЭтотОбъект);
// ИнтеграцияС1СДокументооборотом
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
// Конец ИнтеграцияС1СДокументооборотом
КонецПроцедуры
(14)Отмена роли в расширении не дала результат, полностью удалить роль не получилось пишет что есть ссылки. Но произошли странности после того как я отключил в Еще-Изменить форму - командная панель - кнопки командной панели - важные команды - печать - счет на оплату (отключил снял галку и у документа пропала табличная часть (Х_Х) А не все норм просто снята была галка "Страницы"
(20) Спасибо, вам за участие. Чето с личкой как-то не очевидно, пытался найти пункт отправить сообщение не нашел, нужно добавить в друзья, чтобы отправить сообщение?
Вот поэтому он и вялый. У старослужащих форума такая же проблема. А вдруг фигню какую-то фигню сморозит. Значит потеряет авторитет. Боятся выглядеть глупо. Поэтому вялый.
(2) Тогда сделайте свой, упругий.
Если посетители форума не сталкивались с подобной ситуацией никто не будет за вас моделировать ее по вытертому снимку экрана. Выкладывайте расширение тогда возможно найдутся желающие за спасибо решить вашу проблему.
(3) У какой грозный кавказский юноша!) Зато хоть один отклик, хотя бы такой, спасибо за реакшн! Алчность не красит людей. Я не прошу решать мою задачу(иначе я бы выставил награду, логично?), я прошу натолкнуть на мысль куда копать! Именно вас не заставляю реагировать впредь на мои "упругие" просьбы). Просьба была к экспертам, скучающим и дилетантам мимо
(3) Если вам нужно задать вопрос на инфостарте, то как решаете проблему? Под анонимной учеткой заходите?
У меня впечатление что если у тебя много звезд, то задавать вопросы уже нельзя.
Фиксин задавал какой-то вопрос. Пришел Карамазов и очень удивился что Фиксин этого не знает. Ну раз над человеком удивляются, то понятно что он чего-то не то делает или говорит. Ну, думаю, Сергей может и под собой зайти, все-таки парень закален в боях еще со времен Мисты. А вы-то как?
(23) Я за 13 лет на форуме ни одной темы еще не создал. И публикации тоже не размещал, поэтому и звезд нет. Если у меня проблемы, то или решаю сам, или пишу на v8, или на партнерский.
(26) А почему? Маловероятно что тут кто-то ответит? Или на партнерском форуме информация более достоверная? Пытаюсь понять что тут можно, а чего нельзя. Если на партнерском инфа достоверная, а здесь нет, то можно расслабиться. Сморозил фигню - ну мы же не на партнерском, так что по фиг.
(28) Партнерский, я имел ввиду и семинар тоже, где можно пообщаться с разработчиками решения. И на форуме представители 1С отвечают. И там ты общаешься от своего имени и компании, а не как анонимный усёр длиннономерной.
(29)Забавно тогда ваша миссия просто ходить по форумам и делать, то что вы сейчас описали в предыдущем посте! Полагаясь только на себя и на техподдержку вам далеко не продвинуться в профессиональном плане, как программисту(наверняка лезете в гугл за решением проблемы, но почему то упорно твердите, что вы делаете все сами и сами доходите). Главное для нашего брата обмен опытом и коммуникация. Иначе никак. Ладно хорош, иначе дядя модератор нас начнет банить за флуд не по теме!
Всем кисам пис всем писам кис! Да здравствует пис!
Обновилась сама форма документа, но это вряд ли повлияло на видимость пункта печатной формы - возможно здесь после обновления срабатывает какая-либо процедура, которая удаляет все не нужные элементы командной панели, оставляя только часть по массиву имен (предположение)?
(7)Именно, что-то видимо поменялось в самой схеме (возможно библиотеки(БСП) инициации процедур для создания печатных форм в механизме расширения, либо сама схема создания с глобальными командами изменилась). Но это просто фантазии. Но первопричина кроется именно в платформе.
(9)Странно, но вот у меня ни один пункт меню печать не исчез... К чему бы это? Может я не совсем правильно, или даже совсем не правильно установил 23 платформу?
(34)да бывает такое устанавливаешь такой платформу а она собака правильно установилась на диск Цэ и тогда начинаются реальные проблемы и такой думаешь, а может ее неправильно установить или не установить вообще... Зачем она нужна вообще! Еще один юморист зашел.
(38)Благодарю Sashares за помощь!
Решение такое(насколько я смог разобраться пусть меня поправит автор)
Все завязано не через команду метаданных документа, а через стандартные процедуры печати:
(41)Вместо использования в расширении команды из метаданных документа, печать реализована с помощью стандартного функционала БСП.
А именно:
- в процедуру ДобавитьКомандыПечати модуля менеджера документа добавлена команда;
- в процедуре Печать модуля менеджера документа добавлен вызов процедуры печати для этой команды.
Почему в расширении на актуальной платформе не работают команды из метаданных документа разобраться не получилось. Похоже на баг платформы.
Я вот думаю. Если в подменю печать нет команд, то подменю пропадает. А может такое быть что в основной конфигурации нет команд печати, подменю печать пропадает, хотя в расширении есть команда печати "Спецификация"?