- Создано 03.10.2022 09:37
- Опубликовано 03.10.2022 09:37
- Автор: Administrator
- Просмотров: 1029
К сожалению, типовой функционал программ 1С не всегда удовлетворяет все запросы бухгалтера или директора. И тут на помощь приходят программисты, которые дописывают обработки, отчеты, расширения под желания своих заказчиков. А вы хоть раз задумывались, что общего у бухгалтера и программиста? Ведь на первых шагах своего взаимодействия они общаются одинаково… Первый со вторым, а второй с компьютером, так как будто последний ничего не знает и все указания воспринимает буквально. В этой публикации мы рассмотрим популярные изменения конфигурации: печатные формы (отчеты), расширения и другие изменения конфигурации, а также дадим рекомендации как не напороться на рифы необновляемой конфигурации.
Как говорил известный ученый и специалист по компьютерам Эдсгер Дейкстра «Если отладка – процесс удаления ошибок, то программирование должно быть процессом их внесения».
Для примера взаимодействия и упрощения терминов языка программирования представим, что пишем программу, указывающую компьютеру как приготовить бутерброд:
Программист: «Возьми хлеб!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое возьми и хлеб».
Программист: «Протяни руку туда, куда я скажу и схвати то, что там будет!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое рука!»
Программист (вздыхая): «Вот это штука (указывая на руку)».
Компьютер: «Понял».
Программист: «Протяни руку туда, куда я скажу и схвати хлеб!»
Компьютер: «Ошибка отладчика: «Я не понимаю, что такое схвати!»
Программист: «Протяни руку туда, куда я скажу и согни 5 пальцев вот так (показывает)»
Компьютер: Протягивает руку к хлебу, сжимает пальцы и разжимает (Хлеб остается на месте) …
«Дурацкий пример!» — скажете вы, но именно так или почти так строится первое взаимодействие: Компьютер (язык программирования) не может понять то, что программист в точности не определил, а любой процесс, который он пытается описать нуждается в полном и однозначном определении! Аналогично и при общении с бухгалтером это взаимодействие похоже на известную игру «Испорченный телефон».
Именно в этом и заключается сложность программирования: одна единственная неточная или ошибочная команда делает все программу нерабочей. Аналогично работает и при изменении команд.
Привыкнув к тому факту, что компьютер (программист) не способен читать ваши мысли, вы постепенно учитесь давать инструкции, которые программист (компьютер) сможет понять (выполнить).
Как автор статьи хочу немного добавить от себя: помню, как учился в ВУЗе писать программы на языке C++ и как расстраивался, когда много часов искал пропущенную точку с запятой, из-за которой не работала моя программа и вдобавок омрачали слова преподавателя: «Вы никогда не будете использовать пузырьковую сортировку в реальных программах, но мы все равно будем ее изучать согласно программы ВУЗа!».
Из вышеописанного примера появляется более понятное определение программирования (в отличие от описанного в учебниках) или постановки задачи: «определить начальную информацию (входную), установить последовательность шагов, точно описывающих действия компьютера с входными данными (алгоритм), и определить выходные данные (результат)».
Основной риф необновляемой конфигурации при доработках заключается в том, что затраты на обновление (трудовые и финансовые) становятся больше, чем польза от такого обновления, и зачастую решаются ручным вводом/заполнением/исправлением данных.
Все рифы необновляемой конфигурации легко обойти по карте, которая вырисовывается из вышеописанного определения программирования:
1. Дать верную (полную) входную информацию;
2. Дать верную (точную) последовательности шагов (алгоритм);
3. Обозначить верные (конкретные) выходные результаты.
Пройдемся подробнее по каждому пункту:
Верная входная информация для печатных форм заключается в:
• Определении источника для печати – документа и его конкретной формы или нескольких форм. Печатные формы (далее ПФ) в 1С привязаны к документу(ам), данные которого они выводят на экран в виде шаблона(таблицы) печатной формы из кнопки печать.
• Определении макета(ов) (шаблон или пример) печатной формы, с указанием полей, которые должны подставляться из 1С.
Верная последовательность шагов (алгоритма) для печатных форм заключается в:
• Определении вариантов подстановки полей, которые должны подставляться из 1С – какое поле брать для справочника (наименование или полное наименование), в каком падеже склонения выводить на макет.
• Определении неизменяемой части текста макета (шаблона или примера) печатной формы, в зависимости от операции документа или изменения других его реквизитов.
Верные выходные результаты для печатных форм заключается в:
• Определении размеров и параметров печати на принтере – умещать на одну страницу или переносить, сохраняя часть текста в заголовке, необходимость сохранять и конвертировать в другие форматы файлов Excel, Word и др.
• Видимость, доступность для разных пользователей в зависимости от их прав доступа.
Согласно принципу Парето, только 20% доработок имеют обоснование, а 80% делаются по незнанию типового функционала Заказчиком, или Исполнителем.
Далее рассматриваем эти 80% процентов:
1. Многие печатные формы типовых 1С доступны для редактирования пользователям и такие простейшие задачи как изменить шапку приказа (ссылку на унифицированную формы, шрифт, и другие элементы) решаются как в привычных офисных документах WORD(*.doc) и Excel (*.xls).
Редактирование макетов печатных форм (табеля, счета и акта) мы ранее уже рассматривали в статьях. Макеты открываются из раздела «Администрирование» и позволяют добавить/удалить/заменить данные в макете, добавить вычисляемое или логическое выражение, а также восстановить стандартные настройки макета, если изменения стали не актуальны.
2. В 1С: ЗУП КОРП ред. 3.1 часто возникает необходимость кадровикам создать какой-то отдельный приказ (награждение конкурса, организация спортивных и других мероприятий), которого нет в программе и при этом учитывать его и контролировать отсутствие дублей номеров, а также хранить копии шаблонов таких приказов для повторного использования. Тогда можно использовать механизм «Произвольные кадровые приказы» доступный из раздела настройка:
Каждый шаблон разрабатывает сам пользователь без привлечения программиста или наличия умения программировать:
♦ Перечисляя подставляемые поля приказа:
♦ Указывая как оформляется приказ: на каждого сотрудника или один на несколько сотрудников:
♦ Добавляя или разрабатывая с программистом внешнюю печатную форму, чтобы можно было распечатать и подписать или опубликовать приказ:
♦ Указывая подписантов:
♦ И используя этот шаблон для приказа, в котором подписанты заполняются актуальные на эту дату. И по кнопке «Создать на основании» можем создать документ «Премия», в котором указанные сотрудники будут заполнены автоматически:
Таким образом можно настроить аналогичные другие приказы, например, об организации мероприятий:
3. Настроить разные полномочия подписантов.
1С: ЗУП КОРП позволяет отразить:
– для разных документов – разные подписи,
– добавить для одного сотрудника разные доверенности с разными сроками действия,
– сменить подписанта.
Ответственные лица доступны из справочника организации на закладке «Учетная политика и другие настройки»:
Здесь же можно посмотреть основания полномочий ответственных лиц и показать неактуальные доверенности.
В документах подписанты подставляются автоматически. Если пользователю нужно выбрать другого подписанта, то программа спросит нужно ли запомнить данное изменение:
При наличии у подписанта нескольких доверенностей или же необходимости сменить доверенность, пользователь в самом документе выбирает основание и из списка требуемую доверенность:
Все правила настройки смены подписи сохраняются, а значит пользователь может изменить их под себя или очистить все настройки. В последнем случае пользователь получит в документах тех подписантов, которые указаны в организации:
Рифы необновляемой конфигурации при работе с расширениями и изменениями основной конфигурации работают аналогично, меняется только подход их применения.
Изменения основной конфигурации происходит под бизнес-требования пользователей программы и влекут за собой затраты на приведение в рабочее состояние изменений при каждом типовом обновлении программы.
Расширения конфигурации больше похожи на внешние отчеты или обработки, которые позволяют изменять типовую конфигурацию и хранить эти изменения не в самой конфигурации, а во внешних объектах (расширениях), тем самым позволяя обновляться на все типовые обновления программы. Однако это так же может требовать затрат на приведение в рабочее состояние изменений в расширениях после каждого нового обновления.
Расширения успешно работают с 2014 года и с каждым годом их функциональность становится богаче.
Чаще всего расширения используют:
• Для сохранения типового функционала и беспрепятственного обновления;
• Для раздельных настроек для каждого из филиалов, при режиме разделения данных;
• Для внедрений, когда доработки делаются под себя собственными ИТ-специалистами или специалистами Подрядчика;
Расширения не используют:
♦ Когда требуется добавить новые объекты конфигурации или изменять их тип данных;
♦ В старых конфигурациях, в которых механизм использовать невозможно;
На сайте 1С есть страница посвященная расширениям, там есть раздел «Назначение» и «Сценарии использования», можно ознакомиться с ними еще более подробнее.
Подведем итоги:
Подход к доработке 1С схож с двумя вопросами, которые задают себе спасатели перед началом спасательных работ:
1) Что грозит мне?
2) И что грозит им?
И если первая угроза больше, то спасатель ждет подмогу, чтобы не стать самому пострадавшим, ожидающим помощи.
Поэтому давайте разберем алгоритм доработок по возрастанию затрат и рисков:
1. Знать типовой функционал или обратиться к тому, кто знает, например, в наш закрытый клуб бухгалтеров, в котором мы отвечаем, как на вопросы учета, так и на вопросы владения программой, рассказываем о типовых возможностях программ и в самом крайнем случае рекомендуем обращаться за доработками.
2. Дорабатывать внешними объектами (отчеты, обработки, расширения).
3. Изменять основную конфигурацию следуя системе стандартов и методик разработки конфигурации от фирмы 1С.
4. После каждого обновления проводить аудит и решать требуется ли еще доработка или она уже реализована типовым механизмом и от нее следует отказаться, чтобы не платить за ее адаптацию с каждым обновлением.
Автор статьи: Сергей Барбатько
Понравилась статья? Подпишитесь на рассылку новых материалов
Добавить комментарий
polax
То что вы описали я это уже сделал,кроме пункта 3(на этом у меня и ступор):
Сообщение от polax
Примерно так:
1. Заимствовать док ПТУ
2. В модуле менеджера в После Процедура ДобавитьКомандыПечати добавить нужную команду
3. Там же в Перед Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Сделать вывод своего макета через созданную в расширении процедуры и функции по типу как в трог12 но адаптированную под ваш макет
У меня проблема с выводом, так как например в ТОРГ12 используется запрос и очень сложно получается массивобъектов и прочее, которые потому служат для вывода в процедуре Печать. То есть я пытался по аналогии сделать,но ужасно сложно и одни ошибки вылазят.
А мой макет уже реализован в самописной конфигурации в модуле формы документа. И там всё намного проще:
| 1C | ||
|
| 1C | ||
|
| 1C | ||
|
Могу ли я как то похожим способом реализовать (ибо в БП 3.0 совсееем по-другому все данные берутся) ?
Сообщение от polax
И все это ради чего? Если это реальная задача, то ВПФ не вмешивается в конфигурацию и в данном случае и по-проще (не просто, а чуть легче) и правильней расширения
А ради того, что я буду разбираться в этом и смогу в других типовых конфигурациях уже делать таким образом, если от меня потребуют.
0
Задача: при печати РКО сумма прописью должна выводится всегда. Конфигурация находится на поддержке
Конфигурация: BAS Бухгалтерія, редакція 2.1 (2.1.2.1)
Платформа: 1С:Предприятие 8.3 (8.3.14.1779)
По сути, задача своится к редактированию одной строки, но редактировать конфигурацию мы не можем. Для решения данной задачи будут полезны 2 механизма:
- внешние печатные формы
- расширения
Воспользуемся новым для украинских конфигураци механизмом расширений.
Шаг 1. Заимствуем нужные объекты
Необходимо позаимствовать 2 печатных формы (ПФ_MXL_UK_КО2 и ПФ_MXL_UK_КО2_2018) и документ «Расходный кассовый ордер«. В документе нам необходим будет модуль менеджера.
Шаг 2. Редактируем модуль менеджера
В модуле менеджера необходимо обновить 2 процедуры (ДобавитьКомандыПечати и Печать) и добавить функцию ПечатьРКОСуммаПрописью, которая будет возвращать сформированный табличный документ.
&После("ДобавитьКомандыПечати")
Процедура ДобавитьКомандыПечатиРасш(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "РКОСуммаПрописью";
КомандаПечати.Представление = НСтр("ru='Расходный кассовый ордер (сумма прописью)';uk='Видатковий касовий ордер (сумма прописью)'");
КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";
КонецПроцедуры
&После("Печать")
Процедура ПечатьРасш(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм,ОбъектыПечати, ПараметрыВывода) Экспорт
// Устанавливаем признак доступности печати покомплектно.
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
// Проверяем, нужно ли для макета РКО формировать табличный документ.
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РКОСуммаПрописью") Тогда
// Формируем табличный документ и добавляем его в коллекцию печатных форм.
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "РКОСуммаПрописью", НСтр("ru='Расходный кассовый ордер';uk='Видатковий касовий ордер'"),
ПечатьРКОСуммаПрописью(МассивОбъектов, ОбъектыПечати), , "ОбщийМакет.ПФ_MXL_UK_КО2");
КонецЕсли;
КонецПроцедуры
// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
// Табличный документ - печатная форма накладной
//
Функция ПечатьРКОСуммаПрописью(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
ВалютаРегламентированногоУчета = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ
| Ссылка,
| Номер,
| Дата КАК ДатаДокумента,
| Организация,
| ВидОперации,
| СчетКасса,
| ОбособленноеПодразделениеОрганизации,
| ОбособленноеПодразделениеОрганизации.НаименованиеПолное КАК ОбособленноеПодразделениеОрганизацииПредставление,
| СуммаДокумента КАК Сумма,
| Контрагент,
| Контрагент.Представление КАК ФИОПолучателя,
| ВалютаДокумента КАК Валюта,
| ВалютаДокумента.Представление КАК ВалютаПредставление,
| Выдать,
| Приложение,
| ПоДокументу,
| Основание,
| НомерОрдера
|ИЗ
| Документ.РасходныйКассовыйОрдер КАК РасходныйКассовыйОрдер
|
|ГДЕ
| РасходныйКассовыйОрдер.Ссылка В(&МассивОбъектов)";
Шапка = Запрос.Выполнить().Выбрать();
ПервыйДокумент = Истина;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РасходныйКассовыйОрдер_КО2";
Пока Шапка.Следующий() Цикл
Если НЕ ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
Вариант2018 = Истина;
Если Шапка.ДатаДокумента >= Дата('20180105') Тогда
Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_UK_КО2_2018");
Иначе
Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.ПФ_MXL_UK_КО2");
Вариант2018 = Ложь;
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
КодЯзыкаПечать = "uk";
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
// Выводим шапку накладной
ОбластьМакета.Параметры.Заполнить(Шапка);
Если Вариант2018 Тогда
ПредставлениеДаты = Формат(Шапка.ДатаДокумента, "Л=uk_UA; ДЛФ=DD");
ПредставлениеДаты = Сред(ПредставлениеДаты, 1, СтрДлина(ПредставлениеДаты) - 2) + "року";
ОбластьМакета.Параметры.ДатаДокументаШапка = ПредставлениеДаты;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда
ОбластьМакета.Параметры.ПолноеНаименование = СведенияОбОрганизации.ПолноеНаименование;
Иначе
ОбластьМакета.Параметры.ПолноеНаименование = Шапка.ОбособленноеПодразделениеОрганизацииПредставление;
КонецЕсли;
ОбластьМакета.Параметры.Сумма = ОбщегоНазначенияБПВызовСервера.ФорматСумм(Шапка.Сумма, Шапка.Валюта);
//Если Вариант2018 И (Шапка.ВидОперации = Перечисления.ВидыОперацийРКО.ВзносНаличнымиВБанк
// Или Шапка.ВидОперации = Перечисления.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям
// Или Шапка.ВидОперации = Перечисления.ВидыОперацийРКО.ИнкассацияДенежныхСредств) Тогда
// ОбластьМакета.Параметры.СуммаПрописью = ?(Шапка.Валюта = ВалютаРегламентированногоУчета, "грн коп.", "");
// ОбластьМакета.Область("R15C2:R15C8").ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
//Иначе
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(Шапка.Сумма, Шапка.Валюта, КодЯзыкаПечать);
//КонецЕсли;
Если Шапка.Валюта = ВалютаРегламентированногоУчета Тогда
ОбластьМакета.Параметры.СуммаПрописьюПолучил = ?(Вариант2018, "грн коп.", "грн. коп.");
Иначе
ОбластьМакета.Параметры.СуммаПрописьюПолучил = "";
КонецЕсли;
Попытка
ОбластьМакета.Параметры.КодПоЕДРПОУ = БухгалтерскийУчетПереопределяемый.ПолучитьКодОрганизации(СведенияОбОрганизации);
Исключение
//ОписаниеОшибки()
КонецПопытки;
Если НЕ ЗначениеЗаполнено(Шапка.ОбособленноеПодразделениеОрганизации) Тогда
Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Организация, Шапка.ДатаДокумента);
Иначе
Руководители = ОтветственныеЛицаБП.ОтветственныеЛицаОбособленногоПодразделения(Шапка.ОбособленноеПодразделениеОрганизации, Шапка.ДатаДокумента);
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.РуководительФИО) Тогда
ОбластьМакета.Параметры.ФИОРуководителя = ОбщегоНазначенияБПВызовСервера.ПолучитьФамилиюИмяОтчество(Руководители.РуководительФИО.Фамилия, Руководители.РуководительФИО.Имя, Руководители.РуководительФИО.Отчество, Истина); // Кратко
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.ГлавныйБухгалтерФИО) Тогда
ОбластьМакета.Параметры.ФИОБухгалтера = ОбщегоНазначенияБПВызовСервера.ПолучитьФамилиюИмяОтчество(Руководители.ГлавныйБухгалтерФИО.Фамилия, Руководители.ГлавныйБухгалтерФИО.Имя, Руководители.ГлавныйБухгалтерФИО.Отчество, Истина); // Кратко
КонецЕсли;
Если ЗначениеЗаполнено(Руководители.КассирФИО) Тогда
ОбластьМакета.Параметры.ФИОКассира = ОбщегоНазначенияБПВызовСервера.ПолучитьФамилиюИмяОтчество(Руководители.КассирФИО.Фамилия, Руководители.КассирФИО.Имя, Руководители.КассирФИО.Отчество, Истина); // Кратко
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", Шапка.Ссылка);
Запрос.УстановитьПараметр("Счет", Шапка.СчетКасса);
Запрос.Текст =
"ВЫБРАТЬ
| Проводки.СчетДт КАК СчетДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Проводки
|
|ГДЕ
| Проводки.Регистратор = &ТекущийДокумент И
| Проводки.СчетКт = &Счет"+
?( Шапка.СчетКасса.Валютный, "
|// проводки по курсовой разнице (без валютной суммы) пропускаем
| И Проводки.ВалютнаяСуммаКт <> 0","");
ВыборкаСчетов = Запрос.Выполнить().Выбрать();
СписокСчетов = ""; Разделитель = "";
Пока ВыборкаСчетов.Следующий() Цикл
Если Найти(СписокСчетов, Строка(ВыборкаСчетов.СчетДТ)) <> 0 Тогда
Продолжить;
КонецЕсли;
СписокСчетов = СписокСчетов + Разделитель + Строка(ВыборкаСчетов.СчетДТ);
Разделитель = ", ";
КонецЦикла;
ОбластьМакета.Параметры.Счет = СписокСчетов;
ТабДокумент.Вывести(ОбластьМакета);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
КонецЦикла;
Возврат ТабДокумент;
КонецФункции // ПечатьРКО()
Проверяем.
Печатная форма формируется, но немного странная: отстуствует КодПоЕДРПОУ и текст «Додаток 3«:
Любопытная ситуация. Макет печатной формы возвращает функция УправлениеПечатью.МакетПечатнойФормы. С помощью инструментов разработчика (Функция Ис() при отладке) проверим, какую форму возвращает «чистая» конфигурация, а какую конфигурация с расширением:
Интересное поведение платформы. Объяснения, честно говоря, нет.
Шаг 3. Копируем печатные формы в расширение
Опытным путем было выяснено: для решения задачи с помощью расширений необходимо не заимствовать общие печатные формы, а копировать их в расширение и переименовать. В коде небходимо обращаться к скопированным макетам по именам:
|
|||
| Momus
20.03.20 — 10:27 |
При добавлении макета табличного документа в расширение 1с «не видит» новый макет и использует старый. Вместо этого я создаю новый макет и вношу некоторые изменения в обработку печати. Я как-то не так добавляю макет в расширение или так и должно быть? Использование ВПФ не предлагать. |
||
| yurikmellon2
1 — 20.03.20 — 10:31 |
(0) убедись, что в эту ПФ не внесены изменения в пользовательском режиме |
||
| Momus
2 — 20.03.20 — 10:37 |
(1) убедился, не внесены |
||
| Momus
3 — 20.03.20 — 10:38 |
Обратил внимание, что предыдущий разработчик также создавал _новый_ макет в расширениях. |
||
| Momus
4 — 20.03.20 — 10:41 |
Бывают ли у вас проблемы с макетом в расширении? Если нет, то буду искать решение, чтоб не плодить объекты лишний раз |
||
| yurikmellon2
5 — 20.03.20 — 10:44 |
(2) хм, странно. Все правильно ты делаешь. Если забрать ПФ в расширение, то берется именно версия ПФ из макета. |
||
| Momus
6 — 20.03.20 — 10:50 |
(5) кстати та ПФ, которая была добавлена в расширение и изменена в общем списке макетов (в режиме предприятие) изменилась, но при вызове ПФ УправлениеПечатью.МакетПечатнойФормы(«Документ.СписаниеОС.ПФ_MXL_ОС4») макет остается без изменений. Попробую почистить кэш и вправду. |
||
| Фрэнки
7 — 20.03.20 — 10:50 |
Кэш и демоническое поведении при накатывании таких расширений, не затрагивающих структуры данных, а только вспомогательные данные, вроде макетов, форм, обработок и т.д. |
||
| Momus
8 — 20.03.20 — 10:56 |
(7) такое демоническое поведение это редкость или правило? А то щас накачу обновление под выходные… |
||
|
Momus 9 — 20.03.20 — 11:01 |
(8) впредь буду создавать новые, а не заимствовать, чтобы избежать таких ошибок |
![]() |
|
Здесь можно задать вопрос «Как сделать?» и получить кучу ответов, что тебе это делать не надо. Ymryn |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
















