|
|||||||||||
|
|||||||||||
|
Маркетинговый анализ Документация по 1С О бизнесе Сопровождение 1С Кабинет автоматизатора 1с Полезные технологии Торговый анализ Аналитика 1с |
Текущий раздел: Полезные технологии Продвинутая технология внешних печатных формТехнология позволяет создавать внешние печатные формы на основе существующих встроенных с минимальными изменениями кода и макета таблицы. Ввод в печатные формы и запоминание в базе любой дополнительной информации без проблем с обновлением конфигурации. комиссии, формы, документа, ячеек, документов, списания, конфигурации, печатной, файл, бухгалтер (Необходимое предисловие: описанные в статье механизмы не подходят для информационных баз, в которых производительность является узким местом. Если вас беспокоит такая вещь, как блокировки, не тратьте время на эту статью. Данная технология – удел небольших компаний и приходящих программистов) Наступает день, и Бухгалтер говорит: «Хочу, чтобы при печати акта на списание ОС должность руководителя помещалось в отведенное поле! И чтобы дата подписи акта заполнялась автоматически! И чтобы первоначальная стоимость выводилась даже для тех объектов, которые были списаны при вводе в эксплуатацию! А в графе «Дата выпуска» стояли прочерки». Что делает начинающий 1С -программист? Он открывает конфигурацию, находит общую таблицу ОС-4, и вносит все изменения, о которых его попросили. Тем самым, приговаривая себя делать это всякий раз, когда выйдет очередное обновление конфигурации. В отличие от него, опытный 1С -программист знает про внешние печатные формы. Создав такую форму, и привязав её к документу, опытный программист освобождается от необходимости вспоминать о ней при обновлениях конфигурации. Правда, в процессе создания такой формы придется кропотливо переработать исходный код процедуры «Печать» и исходный макет таблицы. Ведь код будет исполняться уже не в контексте формы документа, а в контексте внешнего отчета, а значит ко всем свойствам и методам документа придется обращаться через точку (Документ.ДатаДок вместо ДатаДок). Если же через какое-то время законодатель внесет изменения в унифицированную форму ОС-4, большую часть работы придется проделать заново. И начинающий, и опытный программист оказываются в затруднительном положении, если Бухгалтер просит дать возможность ввода («и чтоб запоминалось!») в печатную форму информации, хранение которой не предусмотрено стандартной конфигурацией. Например, возможность указания причины списания ОС, или имен членов комиссии по списанию. Многие сдаются, и начинают добавлять дополнительные реквизиты в документы и поля ввода на формы. А потом приходят обновления … Но не всё безнадежно. Ведь есть общие реквизиты и подчиненные справочники! Идея проста – дополнительную информацию для документов храним в общем реквизите типа строка произвольной длины, дополнительную информацию для элементов справочников – в подчиненных справочниках. Редактирование осуществляем непосредственно из печатных форм, в соответствии с принципом WYSIWYG. Новые объекты метаданных не препятствуют обновлению конфигурации. Также, корректно обрабатывается удаление документов и элементов справочников – подчиненная им дополнительная информация удаляется вместе с ними. На производительность мы положили уже в первых строках данной статьи – в конце концов, речь идет о печати документов, а не их проведении. С другой стороны, некоторые дополнительные ухищрения дают нам возможность переносить исходный код и макеты таблиц из конфигурации во внешние формы практически без изменений, связанных со сменой контекста. Для этого нужно просто объявить в модуле отчета переменные с именами, совпадающими с именами реквизитов документа, и определить процедуры и функции, совпадающие с методами документа. Развитие данных идей привело к созданию шаблона, который уже около года успешно используется для быстрой разработки исправленных и улучшенных версий существующих печатных форм документов и справочников. Шаблон, а также образцы созданных на его основе готовых документов можно скачать по адресу: Рассмотрим процесс создания внешней печатной формы для Акта о списании основных средств, типовой бланк ОС-4(а,б), для конфигурации 1С :Бухгалтерия 4.5. 1. Копируем файл Форма_Болванка.ert в каталог ExtForms\PrnForms информационной базы, и переименовываем его в Форма_ОС-4.ert. Заодно копируем файл Форма_ВводКомиссии.ert – он пригодится позднее. Создаем там же текстовый файл Форма_ОС-4.efd следующего содержания: Объект="Документ.СписаниеОС" Название=Акт ОС-4 внешний Кнопка=ОС-4 внеш. Если всё было сделано правильно, в меню выбора печатной формы документа «Списание ОС» должен появиться пункт «Акт ОС-4 внешний», демонстрирующий нам абсолютно пустой бланк. 2. Открываем в конфигураторе файл Форма_ОС-4.ert. Он уже содержим порядка 1000 строк кода, но сейчас мы не будем останавливаться на его детальном разборе. 95% процентов кода составляет базовый функционал, не меняющийся от отчета к отчету. Нас же волнуют только места, обозначенные комментариями [ВСТАВКА] … [КОНЕЦ ВСТАВКИ]. Чтобы наша болванка начала функционировать, требуется заполнение некоторых из отмеченных областей. Первым делом находим область «[ВСТАВКА] Имя отчета» и зададим новое название: «Форма ОС-4». Можно также поменять заголовок формы. Далее, скопируем содержимое типовой процедуры печати из модуля формы документа «Списание ОС» в область «[ВСТАВКА] Типовая процедура печати». Внесем в скопированный блок следующие изменения: после каждого вызова Таб.ИсходнаяТаблица(<имя макета>) (в тексте их насчитывается 4 шт.) вставим вызов процедуры ИсходнаяТаблица(Таб, <имя макета>). Это необходимо, чтобы печать производилась в таблицу, прикрепленную к нашей форме. Также (в связи с тем, что в типовой процедуре 1С содержится не совсем корректный код – обращение к реквизитам табличной части вне цикла ВыбратьСтроки / ПолучитьСтроку), перед скопированным блоком вставим вызов: ВыбратьСтроки(); ПолучитьСтроку(); 3. Проверка синтаксиса модуля на данном этапе отобразит нам массу ошибок типа «Переменная не определена». Перейдите в режим 1С :Предприятие, запустите вспомогательную внешнюю обработку ПереченьРеквизитов.ert, выберите в форме документ «Списание ОС» и нажмите кнопку «Сформировать». В окно сообщений будет выведен список реквизитов шапки и табличной части документа. Блок с реквизитами шапки необходимо скопировать в конфигуратор в область модуля «[ВСТАВКА] Определение и чтение переменных шапки документа». Из блока с реквизитами табличной части строку определения переменных: Перем НомерСтроки, ОсновноеСредство; нужно скопировать в область «[ВСТАВКА] Определение переменных табличной части документа», а оставшиеся две строчки – НомерСтроки = ТекущийОбъект.НомерСтроки; ОсновноеСредство = ТекущийОбъект.ОсновноеСредство; в область «[ВСТАВКА] Чтение переменных табличной части документа». Если всё сделано правильно, наш отчет при вызове из документа должен вывести печатную форму полностью идентичную стандартной. 4. Добавим в отчет таблицу, назовем её ОС-4, и скопируем в неё содержимое общей таблицы ОС-4. (На самом деле, акт о списании может выводиться в трёх разных типовых формах: ОС-4 – для одиночного списания объектов, кроме автотранспортных средств, ОС-4а – для списания автотранспортных средств, ОС-4б – для группового списания объектов. Здесь мы будем изучать методику на примере первой формы. Модификация двух других форм производится аналогично). Теперь, когда мы открепили таблицу от конфигурации, можно приступать к её корректировке – исправить формат ячейки «Должность руководителя», настроить заполнение даты утверждения акта, и сделать всё остальное, о чем просил Бухгалтер в начале статьи. Разбирать подробно эти действия смысла нет, единственная рекомендация – отметить все исправленные ячейки, задав для них особый цвет текста. Тогда, если через год унифицированная форма изменится, и потребуется откорректировать макет, то не придется долго вспоминать, что же было исправлено. 5. Небольшая вариация предыдущего пункта: иногда имеет смысл дать возможность Бухгалтеру самому править макет печатной формы (чтобы он не отвлекал пустячными просьбами поправить текстовку или форматирование ячейки, а мог сделать это самостоятельно). Для этого макет таблицы нужно сохранить в тот же каталог, где находится печатная форма (ExtForms\PrnForms\). В нашем случае, можно сохранить таблицу в файл Форма_ОС-4.mxl. Затем в модуле формы, строку ИсходнаяТаблица(Таб, "ОС-4") нужно будет заменить на строку ИсходнаяТаблица(Таб, "ОС-4", "Форма_ОС-4.mxl"). Тогда, в первую очередь программа попробует подключить внешний файл таблицы, и только если он не найден, будет использовать встроенный макет. Если всё сделано правильно, в форме станет доступной кнопка «Изменить макет». 6. Теперь вспоминаем, что Бухгалтер хочет иметь возможность указывать состав комиссии по списанию, заключение комиссии, и причину списания основных средств. Начнем с комиссии. Откроем макет таблицы и для соответствующей ячейки установим тип: Выражение, текст: ДопИнфо("Председатель комиссии") – для председателя, ДопИнфо("Член комиссии 1") – для первого члена комиссии, ДопИнфо("Член комиссии 2") – для второго члена комиссии и т.д. В поле расшифровка этих ячеек укажем: РасшДопИнфо("Председатель комиссии") – для председателя, РасшДопИнфо("Член комиссии 1") – для первого члена комиссии, РасшДопИнфо("Член комиссии 2") – для второго члена комиссии и т.д. Для ячеек, соответствующих должностям членов комиссии укажем текст: ДопИнфо("Председатель комиссии (должность)") ДопИнфо("Член комиссии 1 (должность)") ДопИнфо("Член комиссии 2 (должность)") ... В поле расшифровка этих ячеек укажем: РасшДопИнфо("Председатель комиссии (должность)") РасшДопИнфо("Член комиссии 1 (должность)") РасшДопИнфо("Член комиссии 2 (должность)") ... Окрасим фон ячеек в светло-желтый цвет – он знаком Бухгалтеру по регламентированным отчетам. Если всё сделано правильно, то при двойном щелчке в отчете по любой из настроенных ячеек, будет предложено ввести значение поля. После ввода, значение будет отображено в ячейке. Также, если названия полей для комиссии были указаны в точности, как написано выше, появится возможность быстрого заполнения имен и должностей с помощью кнопки «Выбрать комиссию». Аналогичным образом настраиваем ячейку для заключения комиссии. Что касается причины списания, сделаем так, чтобы соответствующая информация сохранялась в привязке не к документу, а непосредственно к объекту основных средств. Кроме того, нужно, чтобы, если причина списания не задана, выводился текст по умолчанию – «Непригодно к эксплуатации». Поэтому для соответствующей ячейки таблицы используем расширенный синтаксис. В поле текст укажем: ДопИнфо("Причина выбытия", ОсновноеСредство, "Непригодно к эксплуатации") В поле расшифровка этих ячеек укажем: РасшДопИнфо("Причина выбытия", ОсновноеСредство, "Непригодно к эксплуатации") 7. Теперь вернемся к членам комиссии. На этот раз Бухгалтер хочет не просто вводить имена, но и выбирать их из справочника «Сотрудники». Для этого немного исправим расшифровку ячеек: вместо РасшДопИнфо("Председатель комиссии") укажем РасшДопИнфо("Председатель комиссии",,,"Справочник.Сотрудники"). Аналогичные изменения внесем в расшифровку ячеек для других членов комиссии. Если всё сделано правильно, то при двойном щелчке в отчете по соответствующему полю, программа предложит выбрать значение из справочника, либо отредактировать вручную. Но Бухгалтер не унимается и требует, чтобы при выборе члена комиссии из справочника автоматически подставлялась его должность. Чтобы это сделать, вернемся в конфигуратор, найдем в модуле место, помеченное комментарием «[ВСТАВКА] Дополнительная обработка связанных полей», и добавим следующий код: Если (Ид = "Председатель комиссии") и (Действие = "< выбрать >") Тогда УстановитьДопИнфо(Объект.Должность, "Председатель комиссии (должность)") КонецЕсли; Аналогичный код добавим и для других членов комиссии. 8. К сожалению, как вы наверняка уже заметили, вся информация, которую мы вбиваем в созданные нами поля, теряется при закрытии печатной формы. Чудес не бывает – в стандартной конфигурации её просто негде сохранить. Поэтому снова зайдем в конфигуратор, откроем конфигурацию, и создадим общий реквизит документов типа «строка неограниченной длины», назвав его «ДополнительнаяИнформацияДокумента». Также нам потребуются два новых справочника «ОсновныеСредстваДопХарактеристики» и «КонтрагентыДопХарактеристики», подчиненные справочникам «ОсновныеСредства» и «Контрагенты» соответственно. Их можно взять из демо-конфигурации по приведенной выше ссылке. Аналогичные справочники можно создать для любых других справочников конфигурации, составив их название из имени базового справочника + суффикс «ДопХарактеристики». Если всё сделано правильно, то информация, введенная в печатной форме, будет сохраняться в базе данных. Следует иметь ввиду один нюанс: если печатная форма вызвана из формы документа, то все изменения дополнительной информации, выполняемые в печатной форме, будут записываться в открытый документ. При закрытии формы документа программа задаст вопрос, следует ли сохранить сделанные изменения в базу данных, или закрыть документ без сохранения. Наша тестовая внешняя форма готова. Аналогичным образом «лепятся» печатные формы и для других документов. Среди образцов, доступных по приведенной выше ссылке, можно найти демонстрацию и других возможностей, не рассмотренных в данной статье: * использование одной печатной формы для нескольких документов (Акт ОС-1 – применяется для документа ВводВЭксплуатациюОС и документа ПередачаОС) * выбор значения поля из списка (Акт ОС-4 – выбор причины списания ОС и заключения комиссии) * двухсторонние и многостраничные формы (Акт ОС-15) * печатная форма для справочника (Карточка ОС-6) Автор извиняется за многословие у всех, кто добрался до этой строчки, и надеется, что польза от статьи хоть немного скомпенсирует читателю потерянное время. По материалам сайта Инфостарт Читайте также: Идея ничто! Идея ничто! Вы глубоко ошибаетесь, если думаете, что идея чего-нибудь стоит. В нашем информационном мире, цена идеи приравнена к нулю. Вообще, что такое идея? Это когда вы придумали что-то такое, что является уникальным. Аналитика в ритейле структура, проблемы, пути развития Не секрет, что розничная торговля - одна из наиболее активно развивающихся отраслей российской экономики. Более того, ее состояние уже давно находится на достаточном уровне развития, чтобы детально рассмотреть технологию комплексной, системной организации работ по маркетинговому анализу. Однако практика показывает, что если ритейлеры и уделяют внимание маркетингу и аналитике, то скорее по остаточному принципу. Психология клиента и как с ней бороться Как всякое авторское творение, данное выступление не лишено значительной доли субъективизма, хотя основано оно на опыте реального общения с клиентами-заказчиками нашей компании и не содержит ни малейшей примеси фантазии. 1С стремится в серьезный сегмент Поставщики решений для автоматизации бизнес-процессов на базе платформы " 1С " активизируются в сегментах, которые были традиционно заняты крупными ERP-системами, в частности, на рынке промышленного производства. Во многом это произошло за счет новой восьмой версии, и, по последним данным, из клиентов « 1С : Управление предприятием 8.0» сейчас 60 % составляют промышленные организации. Наибольшую заинтересованность в данном продукте выказывают компании, работающие в таких отраслях, как машиностроение и приборостроение, металлургия и металлообработка, в пищевой и химической промышленности. ABC XYZ анализ в торговле Для компании, желающей построить качественную систему логистики, часто оказывается полезен несложный, но эффективный инструмент управления запасами. XYZ-анализ – изучение стабильности продаж, – обычно используется вместе с ABC-анализом, позволяющим выделить ключевые для фирмы-продавца товары. ПОРЯДОК ОБРАБОТКИ РЕЗУЛЬТАТОВ ИНВЕНТАРИЗАЦИИ. Устранение пересортицы Методика работы с результатами инвентаризации на примере типовой ТиС. Как Вы относите недостачу на МОЛа, и отображаете это в базе. Всем обрезавшим огромные базы 1с 7.7 посвящается Альтернативный метод обрезки ("свертки") базы 1с .77 на конкретную дату через УРБД Расчет товарных запасов Анализ массогабаритных данных по товарам, хранимым на текущий момент, позволяет определить характеристики той продукции, которая присутствует на складе в текущий момент (либо может быть экстраполирована на товарные запасы планируемые к поступлению на склад). Такой анализ с учетом массы нетто, количества штук в упаковке, вида и типа продукции, изготовителя. Вышла новая версия 1С:Предприятие 8.2 Управляемое приложение – это существенное развитие технологической платформы 1С:Предприятия 8. Оно представляет собой не просто новую функциональность, добавленную в платформу, а является новой моделью построения интерфейса приложения и реализации клиент-серверной архитектуры. Новая модель влияет и на подход к разработке прикладного решения, и на администрирование, и на работу пользователя с системой. |
||||||||||
|
|||||||||||
|
|
|||||||||||
Пользовательского поиска
по вопросам сайта обращайтесь: webmaster (at) 1cv8.net.ua |
|||||||||||