Экспорт данных в офисные приложения: различия между версиями
Rudometov (обсуждение | вклад) (→Функции) |
Rudometov (обсуждение | вклад) (Метка: визуальный редактор отключён) |
||
(не показано 14 промежуточных версий 2 участников) | |||
Строка 105: | Строка 105: | ||
=== Специальные идентификаторы === | === Специальные идентификаторы === | ||
Иногда возникает необходимость при печати в шаблоны получать информацию, не доступную в явном виде в каком-либо одном поле документа. Существуют следующие группы специальных идентификаторов: | Иногда возникает необходимость при печати в шаблоны получать информацию, не доступную в явном виде в каком-либо одном поле документа. Существуют следующие группы специальных идентификаторов: | ||
+ | |||
+ | ==== Для объединения ячеек в столбцах (ROWSPAN) ==== | ||
+ | |||
+ | Если в столбце дописать ключевое слово '''%%JOIN''', то такой ячейки с одинаковыми значениями в столбце будут объединены. | ||
+ | Например, если шаблон вида | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | %%FID1 || %%FID2 | ||
+ | |} | ||
+ | |||
+ | формирует таблицу | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | 1111 || aaaaa | ||
+ | |- | ||
+ | | 1111 || ббббб | ||
+ | |- | ||
+ | | 2222 || ввввв | ||
+ | |- | ||
+ | | 2222 || ггггг | ||
+ | |- | ||
+ | | 2222 || ддддд | ||
+ | |} | ||
+ | |||
+ | то шаблон | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | %%FID1 %%JOIN || %%FID2 | ||
+ | |} | ||
+ | |||
+ | cформирует | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | rowspan="2"| 1111 || aaaaa | ||
+ | |- | ||
+ | | ббббб | ||
+ | |- | ||
+ | | rowspan="3"| 2222 || ввввв | ||
+ | |- | ||
+ | | ггггг | ||
+ | |- | ||
+ | | ддддд | ||
+ | |} | ||
+ | |||
+ | Применимо для печати в Excel и OpenOffice Calc. | ||
+ | |||
+ | ==== Для очистки строки с вложенным блоком вместо её удаления ==== | ||
+ | |||
+ | Если в любом месте главного цикла (START_END) вписать идентификатор '''%%CLEARSUBIFEMPTY''', то строка с вложенным циклом (STARTSUB_ENDSUB) не будет удаляться при пустом вложенном блоке, | ||
+ | а просто очистятся ячейки этого блока. Полезно, когда вложенный блок находится в одной строке с главным блоком. Обычно при пустом вложенном удаляется вся строка, вместе с главным блоком. | ||
+ | С таким идентификатором этого удаления можно избежать. | ||
+ | |||
+ | Применимо для печати в Excel и OpenOffice Calc. | ||
==== Для извлечения из справочников ==== | ==== Для извлечения из справочников ==== | ||
Строка 113: | Строка 166: | ||
'''%%REF'''(COUNTRS,ALFA2,34_1,NAME) ''Возьмем значение из графы 34 ГТД (код страны происхождения),'' | '''%%REF'''(COUNTRS,ALFA2,34_1,NAME) ''Возьмем значение из графы 34 ГТД (код страны происхождения),'' | ||
''и используя его найдем наименование страны.'' | ''и используя его найдем наименование страны.'' | ||
− | |||
==== Для извлечений из гр.31 ДТ ==== | ==== Для извлечений из гр.31 ДТ ==== | ||
* '''%%31.NAMEONLY''' – в отличие от %%31.NAME, извлекает из графы 31 только наименование товара без описания;<br> | * '''%%31.NAMEONLY''' – в отличие от %%31.NAME, извлекает из графы 31 только наименование товара без описания;<br> | ||
+ | * '''%%31.NAMETILLCOLON''' – извлекает из графы 31 наименование товара до двоеточия;<br> | ||
* '''%%31ВСЕГОШТ''' – извлекает из графы 31 с основного листа ГТД число N из выражения вида «(ВСЕГО N ШТ)»;<br> | * '''%%31ВСЕГОШТ''' – извлекает из графы 31 с основного листа ГТД число N из выражения вида «(ВСЕГО N ШТ)»;<br> | ||
* '''%%SUM(''<ИМЯ_ПОЛЯ>'')''' – вычисляет сумму значений указанного поля. Например, по идентификатору %%SUM(42_1) будет выведена общая стоимость товаров (поле 42_1 – цена товара). | * '''%%SUM(''<ИМЯ_ПОЛЯ>'')''' – вычисляет сумму значений указанного поля. Например, по идентификатору %%SUM(42_1) будет выведена общая стоимость товаров (поле 42_1 – цена товара). | ||
Строка 152: | Строка 205: | ||
* '''%%SUMALL(''<ИМЯ_ПОЛЯ>'')''' - сумма значений поля <ИМЯ_ПОЛЯ> по всем документам (при выгрузке списка документов в один шаблон) | * '''%%SUMALL(''<ИМЯ_ПОЛЯ>'')''' - сумма значений поля <ИМЯ_ПОЛЯ> по всем документам (при выгрузке списка документов в один шаблон) | ||
− | |||
− | * '''%%EXECMACROS(<ИМЯ_МАКРОСА>)''' - выполнит макрос, прописанный в шаблоне, после окончания выгрузки. | + | * '''%%EXECMACROS(''<ИМЯ_МАКРОСА>'')''' - выполнит макрос, прописанный в шаблоне, после окончания выгрузки. Может находиться в любом месте шаблона. |
+ | |||
+ | * '''%%31.PALCOUNT''' - количество паллет. | ||
+ | |||
+ | * '''%%31.PAKTYPE''' - тип упаковки. | ||
==== Обработка по условию ==== | ==== Обработка по условию ==== | ||
Строка 168: | Строка 224: | ||
* '''%%STARTDEL[''<ИМЯ_ПОЛЯ>'']...%%ENDDEL''' - если заключить фрагмент текста в шаблоне в эти операторы, то при пустом или равном "0" значении поля <ИМЯ_ПОЛЯ> данный фрагмент будет удален из шаблона.<br> | * '''%%STARTDEL[''<ИМЯ_ПОЛЯ>'']...%%ENDDEL''' - если заключить фрагмент текста в шаблоне в эти операторы, то при пустом или равном "0" значении поля <ИМЯ_ПОЛЯ> данный фрагмент будет удален из шаблона.<br> | ||
+ | |||
+ | * '''%%COPY(''<ИМЯ_ПОЛЯ>'', ''X'', ''Y'')''' - копировать часть данных из поля | ||
==== Для извлечения из взаимосвязанных документов ==== | ==== Для извлечения из взаимосвязанных документов ==== | ||
Строка 212: | Строка 270: | ||
'''%%@44_!_06011_nodate''' – выгружает номер без дат, | '''%%@44_!_06011_nodate''' – выгружает номер без дат, | ||
'''%%@44_!_06011_date''' - только первая дата, | '''%%@44_!_06011_date''' - только первая дата, | ||
+ | '''%%@44_!_06011_LASTDATE''' - только дата ДО, | ||
+ | '''%%@44_!_06011_CODE''' - только код типа документа, | ||
'''%%@44_!_04021''' - номер и дату инвойса. | '''%%@44_!_04021''' - номер и дату инвойса. | ||
'''%%@44_!_04021_date''' - только дату инвойса. | '''%%@44_!_04021_date''' - только дату инвойса. | ||
Строка 220: | Строка 280: | ||
'''%%@44_!_04021_PRIOR''' - только номер предшествующей ДТ | '''%%@44_!_04021_PRIOR''' - только номер предшествующей ДТ | ||
'''%%@44_!_04021_COUNT''' - количество документов в товаре с данным кодом | '''%%@44_!_04021_COUNT''' - количество документов в товаре с данным кодом | ||
+ | '''%%@44_!_04021_FORMULA(G444+G442+"ОТ"+G443)''' - выгрузится согласно формуле | ||
Документы берутся как с лицевой стороны, так и из дополнения гр.44. | Документы берутся как с лицевой стороны, так и из дополнения гр.44. | ||
Аналогично эти идентификаторы работают и в документе [[Инвойс]]. В нем они извлекают данные из полей Документ1-15 и дополнения "Документы переданные из программы Артикул" | Аналогично эти идентификаторы работают и в документе [[Инвойс]]. В нем они извлекают данные из полей Документ1-15 и дополнения "Документы переданные из программы Артикул" | ||
+ | |||
+ | С 2015 года так же допускается упрощенный синтаксис без _!_ в середине идентификатора. | ||
+ | |||
+ | '''%%@44_04021_TEXT''' | ||
+ | '''%%@44_01402_NODATE''' | ||
+ | |||
+ | Если необходимо собрать информацию про несколько разных типов документов, то в коде документа можно использовать символ ?, обозначающий любую цифру | ||
+ | |||
+ | '''%%@44_014??_NODATE''' - соберет через запятую номера документов с кодами 01401, 01402, 01403 и до 01499 | ||
+ | |||
+ | Если при помощи символов ? не удается закодировать маску для документов, то можно использовать символ & и указать несколько кодов документов | ||
+ | |||
+ | '''%%@44_01191&01402_NODATE''' - соберет через запятую номера документов с кодами 01191 и 01402 | ||
+ | '''%%@44_01191&0140?_NODATE''' - соберет через запятую номера документов с кодами 01191 и 01401, 01402, 01403 ... до 01409 | ||
==== Для графы 47 и B документа ДТ ==== | ==== Для графы 47 и B документа ДТ ==== | ||
Строка 240: | Строка 315: | ||
'''%%@B_1010''' – выгрузится сумма платежей по коду 1010. | '''%%@B_1010''' – выгрузится сумма платежей по коду 1010. | ||
'''%%@B_1010_Doc''' – выгрузится номер и дата платежного документа по коду 1010. | '''%%@B_1010_Doc''' – выгрузится номер и дата платежного документа по коду 1010. | ||
+ | '''%%@B_1010_DocNum''' – выгрузится номер платежного документа по коду 1010. | ||
+ | '''%%@B_0''' – выгрузится сумма всех платежей. | ||
+ | '''%%@B_0_Doc''' – выгрузятся номер и дата платежных документов по всем кодам. | ||
+ | '''%%@B_0_DocNum''' – выгрузятся номера платежных документов по всем кодам. | ||
+ | '''%%@B_0_Text''' – выгрузится вся строка, кроме ИНН\КПП. | ||
+ | |||
+ | ==== Для получения информации из SQL таблиц по ДТ и процедуре ==== | ||
+ | |||
+ | * '''%%PROCESSID''' - ID ЭД-процедуры. | ||
+ | * '''%%EDSTAT''' - ЭД-статус ДТ в текстовом виде. | ||
+ | * '''%%EDSENDDATE''' - Дата подачи ДТ. | ||
+ | * '''%%EDSENDTIME''' - Время подачи ДТ. | ||
+ | * '''%%EDREGISTERDATE''' - Дата регистрации ДТ. | ||
+ | * '''%%EDREGISTERTIME''' - Время регистрации ДТ. | ||
+ | * '''%%EDLASTDATE''' - Дата выпуска ДТ. | ||
+ | * '''%%EDLASTTIME''' - Время выпуска ДТ. | ||
+ | * '''%%EDDATEBYCMN()''' - Дата произвольного ЭД-сообщения по ДТ, по типу этого сообщения. Например %%EDDATEBYCMN(CMN.11001) - дата регистрации ДТ | ||
+ | * '''%%EDTIMEBYCMN()''' - Время произвольного ЭД-сообщения по ДТ, по типу этого сообщения. Например %%EDTIMEBYCMN(CMN.11001) - время регистрации ДТ | ||
=== Выгрузка нескольких документов в один шаблон === | === Выгрузка нескольких документов в один шаблон === |
Текущая версия на 14:53, 13 сентября 2024
Содержание
- 1 Общие сведения о функции
- 2 Окно настройки выгрузки
- 3 Шаблоны
- 3.1 Механизм выгрузки данных
- 3.2 Выбор шаблона
- 3.3 Создание основы для нового шаблона
- 3.4 Команды для работы с шаблонами
- 3.5 Правила составления идентификаторов
- 3.6 Специальные идентификаторы
- 3.6.1 Для объединения ячеек в столбцах (ROWSPAN)
- 3.6.2 Для очистки строки с вложенным блоком вместо её удаления
- 3.6.3 Для извлечения из справочников
- 3.6.4 Для извлечений из гр.31 ДТ
- 3.6.5 Функции
- 3.6.6 Обработка по условию
- 3.6.7 Для извлечения из взаимосвязанных документов
- 3.6.8 Для гр.44 ДТ или гр. "Документы 1-15" Инвойса
- 3.6.9 Для графы 47 и B документа ДТ
- 3.6.10 Для получения информации из SQL таблиц по ДТ и процедуре
- 3.7 Выгрузка нескольких документов в один шаблон
- 3.8 Окно с полями документа для редактирования шаблонов
- 4 Остальные команды окна настройки выгрузки
- 5 Создание и редактирование пользовательских идентификаторов
- 6 Планировщик печати
Общие сведения о функции
Для наиболее эффективной организации вывода документов на печать программы Альта (ГТД, Такса) позволяют переносить данные в офисные приложения Microsoft (Word, Excel) или OpenOffice. Данные оформляются согласно шаблонам – предопределенным в программе или изготовленным пользователем. В шаблонах могут быть задействованы все возможности указанных редакторов (форматирование таблиц, вставка графики и пр.). Экспорт осуществляется при помощи OLE-серверов, внедренных в офисные приложения, т.о. требуется обязательная установка этих приложений на компьютер пользователя. Для случаев, когда офисные приложения на компьютере пользователя не установлены, в программе предусмотрена выгрузка данных в файлы либо простого текстового формата (.txt), либо формата HTML. При этом выгрузка в текстовый формат имеет ограниченную функциональность (не поддерживаются форматирование и таблицы). Выгрузка в HTML имеет полноценную функциональность, но требует определенных навыков для подготовки и оформления шаблонов.
Окно настройки выгрузки
Выбор и настройка шаблонов для последующей выгрузки документа выполняется в окне «Печать документа в шаблон Office», вызываемом по команде главного меню Печать|Печать в Word/Excel/OpenOffice (для ГТД) или по нажатию Ctrl+Shift+F9.
Шаблоны
Механизм выгрузки данных
Выгрузка данных в офисное приложение осуществляется при помощи шаблона. Шаблон – это документ офисного приложения, в котором оформляется для печати соответствующий электронный документ Альта-программы. Причем если неизменяемая часть электронного документа (названия полей, комментарии и т.п.) записывается в шаблон непосредственно, то изменяемая часть – введенные в поля значения – представляется в виде специальных символьных последовательностей – идентификаторов полей. Таким образом, при выполнении выгрузки программа открывает шаблон в офисном приложении, находит в тексте шаблона идентификаторы полей документа и заменяет их соответствующими значениями. Замена идентификаторов на данные из электронного документа производится методами самого офиса (как если бы пользователь вручную вызвал в офисном приложении команду замены одних строк на другие), поэтому при печати полностью сохраняется исходное форматирование шаблона, которое, следовательно, может быть сколь угодно сложным. Полный перечень идентификаторов, предназначенных для использования в шаблонах для ГТД, содержится в файле alta\data\gtdwin.dcf (файл можно открыть в любом текстовом редакторе). Идентификатор текущего (выделенного в данный момент) поля отображается в статусной строке окна ГТД (в правом нижнем углу):
Выбор шаблона
Необходимый шаблон можно либо выбрать среди уже имеющихся, либо создать новый. Способы выбора шаблона:
- по кнопке <Выбрать шаблон> (в левой части окна) – раскрывается основной список всех имеющихся шаблонов (при вызове окна «Печать документа в шаблон Office» этот список раскрыт по умолчанию);
- по кнопке <Недавние шаблоны> (в левой части окна) – открывается история печати, т.е. список последних использовавшихся для печати шаблонов (дата и время указаны в колонке «Изменен»). С шаблонами из этого списка можно производить те же команды, что и с шаблонами из основного списка. Список недавно использовавшихся шаблонов можно очистить по кнопке <Очистить историю печати>. Сами шаблоны при этом не удаляются.
Создание основы для нового шаблона
Если в основном списке подходящего шаблона нет, то можно либо создать его самостоятельно либо использовать один из имеющихся стандартных.
Чтобы взятый за основу шаблон (вновь созданный или стандартный) стал доступен для редактирования, необходимо внести его в основной список.
- Для стандартных:
- нажмите на кнопку <Готовые шаблоны> (в левой части окна);
- в появившемся списке стандартных шаблонов выберите подходящий;
- дважды щелкните левой клавишей мыши по выбранному шаблону (или нажмите на кнопку <Создать> в правом нижнем углу окна) – шаблон будет перенесен в основной список (раскрываемый по кнопке <Выбрать шаблон>) и станет доступным для редактирования, печати и т.д.
Примечание. Стандартные шаблоны хранятся в папке alta\template\default\. Список шаблонов – в файле template\default\template.ini. После выбора стандартного шаблона и нажатия кнопки <Создать> шаблон будет скопирован из template\default\ в рабочую папку документа с шаблонами.
- Для новых шаблонов:
- нажмите кнопку <Создать шаблон> (в левой части окна);
- выберите из списка пустой шаблон требуемого формата;
- дважды щелкните левой клавишей мыши по выбранному шаблону (или нажмите кнопку <Создать> в правом нижнем углу окна) – будет предложено два варианта:
- создать табличный шаблон с выбранными полями – в этом случае выбирается блок текущего документа (товары или дополнение) и поля этого блока, которые будут автоматически будут вставлены в шаблон в виде таблицы.
- создать обычный шаблон – будет создан пустой шаблон.
Новый шаблон появится в основном списке и станет доступным для редактирования, печати и т.д.
Примечание. Отображение форматов, доступных для создания нового шаблона, зависит от того, какое ПО установлено на данном компьютере: форматы TXT и HTML, раскрываемые стандартными программами ОС, доступны всегда; форматы DOC/XLS (MS Office) и ODT/ODS (OpenOffice) доступны только в том случае, если на компьютере установлены соответствующие офисные приложения.
Команды для работы с шаблонами
К шаблонам, отображаемым в основном списке, можно применить следующие команды:
- Печатать документ согласно шаблону (кнопка <Печатать>, кнопка на панели инструментов или Ctrl+P) – выбранный шаблон открывается в соответствующем офисном приложении (Word, Excel или OpenOffice), при этом в него выгружаются данные из текущего электронного документа;
Примечание. В процессе загрузки данных в шаблон на экране отображается окно с индикатором процесса выгрузки. При необходимости выгрузку можно отменить по нажатию кнопки <Отмена>. При нажатии на кнопку <Подробно> будет отображаться протокол выгрузки (в нем отображаются сопровождающие процесс уведомления, предупреждения и сообщения об ошибках). По окончании выгрузки протокол можно сохранить в текстовом формате, нажав на кнопку <Сохранить отчет>. Сохраненный протокол может понадобиться при обращении в техподдержку в случае возникновения ошибок.
- Редактировать шаблон (кнопка или F4) – выбранный шаблон открывается для редактирования в соответствующем офисном приложении, не загружая данные из документа;
- Удалить шаблон (кнопка или кнопка Del или Ctrl+D) – шаблон удаляется из основного списка (а также сам файл шаблона из соответствующей папки);
- Открыть папку, содержащую файлы шаблонов (кнопка или Ctrl+E).
Примечание. Выбор папок для хранения шаблонов осуществляется для каждого типа документов (ГТД, ДТС и т.д.). По умолчанию используются стандартные папки в alta\template\. При необходимости редактирования путей к этим папкам нажмите кнопку <Настройки> (в левой части окна).
- Редактировать комментарий к документу (кнопка или Ctrl+Z). Комментарий – это строка, которая в основном списке отображается вместо названия файла шаблона.
Примечание. Команды работы с шаблонами, расположенные на панели инструментов, дублируются в меню, вызываемом щелчком правой клавишей мыши по выбранному шаблону.
Правила составления идентификаторов
Отличительная особенность идентификаторов: все они начинаются с двойного знака процента – %%. Идентификаторы могут быть расположены в любом месте документа, но должны отделяться от остального текста пробелами. Идентификаторы могут содержать только латинские буквы в верхнем регистре, цифры, а также знаки: % _ & \ [ ] ( ) @.
Далее приводится синтаксис идентификаторов, используемых в шаблонах:
%%<ИМЯ_ПОЛЯ> - вставка значения указанного поля.
%%7_1 Вставить значение поля 7_1 (регистрационный номер ГТД)
%%START[<ИМЯ_БЛОКА>] - начало повторяющегося блока;
%%END[<ИМЯ_БЛОКА>] - конец повторяющегося блока
Эти идентификаторы используются для печати информации о товарах или дополнений документов, например
%%START[BLOCK] %%31.NAME %%END[BLOCK]
позволит вставить в документ список товаров из поля ГТД «31. Грузовые места и описание товаров».
Этот фрагмент шаблона размножается столько раз, сколько записей находится в ИМЯ_БЛОКА. Это или количество товаров или количество строк дополнения. Каждый из размноженных блоков заполняется данными полей соответствующего товара (дополнения). Такой подход позволяет создавать шаблоны печати практически любого вида.
Если добавить после <ИМЯ_БЛОКА> номера первого и последнего товара, то будут выгружены записи только из указанного диапазона, например:
%%START[BLOCK,3,8] %%31.NAME %%END[BLOCK] - будут выгружены описания товаров только с 3 по 8 товар.
Частный случай - %%START[BLOCK,2,2] - в этом случае выгрузятся поля из одного товара - второго.
Частный случай - %%START[BLOCK,0,0] - в этом случае выгрузятся поля из всех товаров в одну строку через запятую.
%%START %%END будучи размещенными в одной строке, при размножении формируют таблицу. Если разместить их в начале и конце страницы, то получится лист-карточка для для каждого товара.
При добавлении ! в начале идентификатора (после %%, например %%!33_1) проверяется на повторы значений в цикле START/END. Повторяющиеся значения в шаблон не выводятся.
Для получения информации из вложенных блоков, т.е. блоков содержащихся в основном блоке используются директивы
%%STARTSUB[<ИМЯ_БЛОКА>] - начало повторяющегося вложенного блока
%%STARTSUB[<ИМЯ_БЛОКА>] - конец повторяющегося вложенного блока
Имя поля в идентификаторах в этом случае предваряется именем основного блока и именем вложенного блока через «\»
%%START[BLOCK] Начало основного блока (графа 31 ДТ) %%STARTSUB[TXT] Начало вложенного блока (дополнительное описание товара, текст к гр. 31 ДТ) %%BLOCK\TXT\TEXT Собственно, сам текст %%ENDSUB[TXT] Конец вложенного блока %%END[BLOCK] Конец основного блока
или
%%START[BLOCK] Начало основного блока (товары ДТ) %%STARTSUB[TOVG] Начало вложенного блока (Описание и характеристики товара (Графа 31 ДТ)) %%BLOCK\TOVG\G31_1 Описание группы товаров %%BLOCK\TOVG\G31_14 Марка %%BLOCK\TOVG\G31_15 Артикул %%ENDSUB[TOVG] Конец вложенного блока %%END[BLOCK] Конец основного блока
Чтобы выгрузить поле из определенного блока вне цикла START/END, используется такая запись: %%BLOCK\2\TXT\3\TEXT.
Для выгрузки значений поля из всех товаров через запятую - %%BLOCK\0\33_1.
Специальные идентификаторы
Иногда возникает необходимость при печати в шаблоны получать информацию, не доступную в явном виде в каком-либо одном поле документа. Существуют следующие группы специальных идентификаторов:
Для объединения ячеек в столбцах (ROWSPAN)
Если в столбце дописать ключевое слово %%JOIN, то такой ячейки с одинаковыми значениями в столбце будут объединены. Например, если шаблон вида
%%FID1 | %%FID2 |
формирует таблицу
1111 | aaaaa |
1111 | ббббб |
2222 | ввввв |
2222 | ггггг |
2222 | ддддд |
то шаблон
%%FID1 %%JOIN | %%FID2 |
cформирует
1111 | aaaaa |
ббббб | |
2222 | ввввв |
ггггг | |
ддддд |
Применимо для печати в Excel и OpenOffice Calc.
Для очистки строки с вложенным блоком вместо её удаления
Если в любом месте главного цикла (START_END) вписать идентификатор %%CLEARSUBIFEMPTY, то строка с вложенным циклом (STARTSUB_ENDSUB) не будет удаляться при пустом вложенном блоке, а просто очистятся ячейки этого блока. Полезно, когда вложенный блок находится в одной строке с главным блоком. Обычно при пустом вложенном удаляется вся строка, вместе с главным блоком. С таким идентификатором этого удаления можно избежать.
Применимо для печати в Excel и OpenOffice Calc.
Для извлечения из справочников
Например, нам требуется получить наименование страны, зная при этом ее цифровой код. Для этого используется идентификатор %%REF[<СПР>,<ПОЛЕ1>,<ИМЯ_ПОЛЯ>,<ПОЛЕ2>] , где <CПР> - имя файла справочника, <ПОЛЕ1> - название поля в справочнике, по которому ищем информацию, <ИМЯ_ПОЛЯ> - поле документа, откуда извлекается информация, <ПОЛЕ2> - название поля с возвращаемым значением.
%%REF(COUNTRS,ALFA2,34_1,NAME) Возьмем значение из графы 34 ГТД (код страны происхождения), и используя его найдем наименование страны.
Для извлечений из гр.31 ДТ
- %%31.NAMEONLY – в отличие от %%31.NAME, извлекает из графы 31 только наименование товара без описания;
- %%31.NAMETILLCOLON – извлекает из графы 31 наименование товара до двоеточия;
- %%31ВСЕГОШТ – извлекает из графы 31 с основного листа ГТД число N из выражения вида «(ВСЕГО N ШТ)»;
- %%SUM(<ИМЯ_ПОЛЯ>) – вычисляет сумму значений указанного поля. Например, по идентификатору %%SUM(42_1) будет выведена общая стоимость товаров (поле 42_1 – цена товара).
Кроме того с помощью идентификатора %%SUM можно извлечь сумму значений поля вложенного блока, например %%SUM(BLOCK\TOVG\KOLVO) извлекает из вложенного блока TOVG общее количество товаров в группах для текущего товара (используется внутри %%START[BLOCK] %%END[BLOCK]);
- %%TOVG(<ИМЯ_ПОЛЯ>) – извлечет из дополнения «Описание и характеристика товаров» все значения для указанного поля через запятую (используется внутри %%START[BLOCK] %%END[BLOCK]);
Функции
- %%NEW_PAGE - разрыв страницы;
- %%RATE(<КОД_ВАЛЮТЫ>) – получает курс валюты по её коду. В качестве передаваемого параметра можно использовать непосредственно код валюты (например USD), а можно использовать ссылку на идентификатор, содержащий этот код, например:
%%RATE(BLOCK\DOG\PRVAL)
- %%LABELEDFIELD(<КОММЕНТАРИЙ>, <ИМЯ_ПОЛЯ>) – Выводит значение поля <ИМЯ_ПОЛЯ> с комментарием. Например:
%%LABELEDFIELD(Код ТНВЭД:, 33_1)
- %%BLOCKNUM – выводится номер текущего выгружаемого товара (используется внутри %%START[BLOCK] %%END[BLOCK]);
- %%BLOCKCOUNT – выводится количество товаров в документе;
- %%NUMBLOCK(<ИМЯ_БЛОКА>) – выводится количество записей в блоке, например:
%%NUMBLOCK(BLOCK) - количество товаров ДТ %%NUMBLOCK(BLOCK\1\TOVG) - количество артикулов в первом товаре ДТ;
- %%TNVEDTEXT – выводится описание кода ТНВЭД для текущего выгружаемого товара;
- %%PRICESCOLOR – если в документе поле «цены» (PRICES) подсвечено красным цветом, то при выгрузке в Excel ячейка с ценой также будет закрашена красным (используется вместо %%PRICES).
- %%USERNAME - автор документа.
- %%TOVGCOUNT - количество записей в дополнениях TOVG (артикулов) во всей ДТ.
- %%SUMMARY - суммирует значения поля из дополнения по всему документу, например:
%%SUMMARY(BLOCK\TOVG\KOLVO) - просуммирует поле KOLVO по всей ДТ.
- %%SUMALL(<ИМЯ_ПОЛЯ>) - сумма значений поля <ИМЯ_ПОЛЯ> по всем документам (при выгрузке списка документов в один шаблон)
- %%EXECMACROS(<ИМЯ_МАКРОСА>) - выполнит макрос, прописанный в шаблоне, после окончания выгрузки. Может находиться в любом месте шаблона.
- %%31.PALCOUNT - количество паллет.
- %%31.PAKTYPE - тип упаковки.
Обработка по условию
- %%IIF(<ИМЯ_ПОЛЯ>, <ЗНАЧЕНИЕ1>, <ЗНАЧЕНИЕ2>) – В зависимости от значения поля <ИМЯ_ПОЛЯ> (True, False) выведет либо <ЗНАЧЕНИЕ1> либо <ЗНАЧЕНИЕ2>. Вместо ЗНАЧЕНИЯ может использоваться идентификатор с %%. Примеры:
%%IIF(IMPORT,происхождения,назначения) %%IIF(ONECOUNTRY,%%REF(COUNTRS,CODE,Country,KrName),РАЗНЫЕ)
- %%NZ(<ИМЯ_ПОЛЯ>, <ЗНАЧЕНИЕ>) – если значение поля <ИМЯ_ПОЛЯ> непустое, то выгружает его, иначе выгружает <ЗНАЧЕНИЕ>. Вместо ЗНАЧЕНИЯ может использоваться идентификатор с %%. Например:
%%NZ(REF(COUNTRS,CODE,Country,DESCR),Прочая)
- %%STARTDEL[<ИМЯ_ПОЛЯ>]...%%ENDDEL - если заключить фрагмент текста в шаблоне в эти операторы, то при пустом или равном "0" значении поля <ИМЯ_ПОЛЯ> данный фрагмент будет удален из шаблона.
- %%COPY(<ИМЯ_ПОЛЯ>, X, Y) - копировать часть данных из поля
Для извлечения из взаимосвязанных документов
Существует возможность при выгрузке одного документа выводить в шаблон значения полей из другого, взаимосвязанного, документа. Для этого необходимо перед идентификатором добавить идентификатор связанного документа через точку. Например использованный в шаблоне выгрузки для ГТД идентификатор:
%%INV.42_ZAEDINIC
выведет значение поля «стоимость за единицу» из связанного с ГТД инвойса.
Часто количество товаров в ГТД и связанном с ней Инвойсе не совпадает. В этом случае для выгрузки в шаблон ГТД полей из инвойса можно использовать специальный вложенный блок INVDOC. То есть вложенный блок в этом случае будет представлять собой не дополнение ГТД, а товары из связанного с ней инвойса, из которых состоит соответствующий товар ГТД. Например:
%%START[BLOCK] Начало основного блока (товар ГТД) %%STARTSUB[INVDOC] Начало вложенного блока (товары инвойса, из которых состоит данный товар ГТД) %%BLOCK\INVDOC\31_ARTICUL поля из товаров инвойса %%ENDSUB[INVDOC] Конец вложенного блока %%END[BLOCK] Конец основного блока
Для гр.44 ДТ или гр. "Документы 1-15" Инвойса
Еще один тип идентификаторов – предваряется символами %%@ и используется для граф 44, 47 и B документа ГТД. Используется для частичной выгрузки поля. Синтаксис следующий:
- %%@44_!_код документа_дополнительные параметры.
Если указана только начальная часть пятизначного кода документа или у товара несколько документов с заданных кодом, то все документы выводятся через запятую.
Примеры использования:
%%@44_!_06011 – выгрузятся все документы гр.44 с кодом 06011, %%@44_!_04021 - выгрузятся все инвойсы %%@44_!_01 - выдаст все документы с кодами начинающиеся на 01
По умолчанию выводятся только номера и дата документов. Но при помощи дполнительного параметра
можно добавить даты действия, код документа и т.д.
Примеры использования дополнительных параметров
%%@44_!_06011_О - выдавший орган для сертификатов (пишется в конце строчки после последней даты, без запятой), %%@44_!_06011_ДО – выгружает номер с первой и со второй датой, %%@44_!_06011_nodate – выгружает номер без дат, %%@44_!_06011_date - только первая дата, %%@44_!_06011_LASTDATE - только дата ДО, %%@44_!_06011_CODE - только код типа документа, %%@44_!_04021 - номер и дату инвойса. %%@44_!_04021_date - только дату инвойса. %%@44_!_01_wcode - выдаст все документы с кодами начинающиеся на 01, дописать перед номером документа его пятизначный код %%@44_!_04021_TEXT - полный текст документа со всеми ключевыми полями, как на лицевой графе 44, кроме кода. Обычно номер и дата. %%@44_!_04021_SIGN - только признак предоставления документа %%@44_!_04021_PRIOR - только номер предшествующей ДТ %%@44_!_04021_COUNT - количество документов в товаре с данным кодом %%@44_!_04021_FORMULA(G444+G442+"ОТ"+G443) - выгрузится согласно формуле
Документы берутся как с лицевой стороны, так и из дополнения гр.44.
Аналогично эти идентификаторы работают и в документе Инвойс. В нем они извлекают данные из полей Документ1-15 и дополнения "Документы переданные из программы Артикул"
С 2015 года так же допускается упрощенный синтаксис без _!_ в середине идентификатора.
%%@44_04021_TEXT %%@44_01402_NODATE
Если необходимо собрать информацию про несколько разных типов документов, то в коде документа можно использовать символ ?, обозначающий любую цифру
%%@44_014??_NODATE - соберет через запятую номера документов с кодами 01401, 01402, 01403 и до 01499
Если при помощи символов ? не удается закодировать маску для документов, то можно использовать символ & и указать несколько кодов документов
%%@44_01191&01402_NODATE - соберет через запятую номера документов с кодами 01191 и 01402 %%@44_01191&0140?_NODATE - соберет через запятую номера документов с кодами 01191 и 01401, 01402, 01403 ... до 01409
Для графы 47 и B документа ДТ
- %%@47_код вида платежа_номер столбика. Например:
%%@47_5010_3 – выгрузит ставку НДС, %%@47_5010_4 – выгрузит сумму НДС, %%@47_5010U_4 - выгрузит сумму НДС, включая условно начисленные платежи, %%@47_5010_4_V выгрузит сумму НДС, но в валюте по курсу из гр.23_1, %%@47_0_4 – выгрузит сумму всех платежей, %%@47_0U_4 – выгрузит сумму всех платежей, включая условно начисленные;
- %%@B_код вида платежа. Пример:
%%@B_1010 – выгрузится сумма платежей по коду 1010. %%@B_1010_Doc – выгрузится номер и дата платежного документа по коду 1010. %%@B_1010_DocNum – выгрузится номер платежного документа по коду 1010. %%@B_0 – выгрузится сумма всех платежей. %%@B_0_Doc – выгрузятся номер и дата платежных документов по всем кодам. %%@B_0_DocNum – выгрузятся номера платежных документов по всем кодам. %%@B_0_Text – выгрузится вся строка, кроме ИНН\КПП.
Для получения информации из SQL таблиц по ДТ и процедуре
- %%PROCESSID - ID ЭД-процедуры.
- %%EDSTAT - ЭД-статус ДТ в текстовом виде.
- %%EDSENDDATE - Дата подачи ДТ.
- %%EDSENDTIME - Время подачи ДТ.
- %%EDREGISTERDATE - Дата регистрации ДТ.
- %%EDREGISTERTIME - Время регистрации ДТ.
- %%EDLASTDATE - Дата выпуска ДТ.
- %%EDLASTTIME - Время выпуска ДТ.
- %%EDDATEBYCMN() - Дата произвольного ЭД-сообщения по ДТ, по типу этого сообщения. Например %%EDDATEBYCMN(CMN.11001) - дата регистрации ДТ
- %%EDTIMEBYCMN() - Время произвольного ЭД-сообщения по ДТ, по типу этого сообщения. Например %%EDTIMEBYCMN(CMN.11001) - время регистрации ДТ
Выгрузка нескольких документов в один шаблон
Выгрузка нескольких документов в один шаблон запускается из списка документов (Печать\Печать в Word\Excel\OpenOffice..).
При этом будет предложено выгрузить все документы из текущей папки либо выбранные документы.
Далее выбирается шаблон и запускается печать как обычно.
В табличный шаблон будут выгружены товары из всех выбранных документов. Если в шаблоне есть поля из шапки документа, то эти поля будут взяты из первого выбранного документа.
Для выгрузки списка документов (только поля из шапки) предназначены идентификаторы %%START[DOC] ... %%END[DOC], которые образуют таблицу с количеством строк по количеству выбранных документов.
Пример:
%%START[DOC] %%7_1 %%8_NAM %%9_NAM %%END[DOC]
Окно с полями документа для редактирования шаблонов
Окно с полями документа открывается при редактировании шаблона если включена соответствующая настройка (стоит галочка в закладке с настройками).
В окне отображаются все поля соответствующего документа (например ГТД) в виде дерева. Идентификаторы полей перетаскиваются в шаблон мышью. Кроме того можно перетаскивать специальные идентификаторы и пользовательские идентификаторы (свои поля). Ниже дерева с полями есть строка для быстрого поиска нужного поля.
Чтобы перетащить сразу несколько идентификаторов, выделите их все, удерживая нажатым Ctrl или Shift. После перетаскивания, поля расположатся в шаблоне в том же порядке, в каком они идут в окне. Порядок можно поменять используя кнопки "Переместить выделенные поля выше/ниже" на панели инструментов (выделить нужные поля и нажать соответствующую стрелку для перемещения выше или ниже).
Есть также следующие настройки:
- Прозрачность окна – меняется ползунком;
- Использовать START END – при перетаскивании полей они автоматически образуют собой таблицу со START[<ИМЯ_БЛОКА>] и END[<ИМЯ_БЛОКА>] (неприменимо для полей из заголовка документа).
- Перетаскивать поля с именами – совместно с идентификатором в шаблон вставляется и русское наименование поля;
- Не показывать больше это окно – выключение отображения окна с полями при редактировании шаблона, включить можно в закладке с настройками;
Одновременно можно редактировать несколько шаблонов. Если это шаблоны разных типов документов, то все такие типы добавятся в окно в виде отдельных деревьев и переключаются соответствующими кнопками с наименованиями типов в верхней части окна.
Остальные команды окна настройки выгрузки
Помимо команд для работы с шаблонами, в окне настройки выгрузки можно открыть для просмотра и редактирования список пользовательских идентификаторов для данного документа (кнопка <Свои поля>).
Примечание. Использование пользовательских идентификаторов в шаблонах аналогично использованию стандартных идентификаторов. Создание и настройка пользовательских идентификаторов рассматриваются в следующем разделе. Пользовательские идентификаторы со всеми своими параметрами хранятся в файле ALTA\ExtraFields.ini.
В настройках (кнопка <настройки>) можно настроить для каждого типа документа индивидуальный каталог, где будут сохраняться шаблоны этого документа. Кроме того есть следующие настройки:
- Окно контроля выгрузки – в зависимости от положения бегунка, при выгрузке в шаблон, в окне контроля будут отображаться все сообщения, только ошибки и предупреждения, или окно вообще не будет отображаться.
- Показывать процесс выгрузки – при снятой галочке шаблон не будет виден до окончания выгрузки.
- Показывать окно с полями при редактировании документа – при включенной настройке рядом с открытым для редактирования шаблоном будет показано окно с полями для текущего документа. Из этого окна мышью можно перетаскивать нужные поля прямо в шаблон. Если перетаскивать сразу несколько полей, в шаблоне автоматически будет создана таблица.
- Обрезать большие описания – можно настроить обрезку больших полей при выгрузке
- Выгружать в открытый файл - если какой-либо файл уже открыт в текстовом или табличном редакторе офиса, то будет предложено выгрузить в этот файл, без создания нового. Для Excel будет создан новый лист, для Word - через разрыв страницы.
- Выгружать список документов в отдельные шаблоны - обычно при выгрузке нескольких документов, они выгружаются в одну таблицу. По этой настройке можно выгружать каждый документ в свою таблицу (отдельный шаблон).
Создание и редактирование пользовательских идентификаторов
Помимо идентификаторов, предопределенных в системе (их перечень содержится в файле alta\data\gtdwin.dcf), при создании шаблонов можно использовать пользовательские идентификаторы.
Описание команд меню
Список пользовательских идентификаторов открывается по нажатию кнопки <Свои поля> в окне печати. Здесь же идентификаторы можно создавать и редактировать. В нижней части окна расположены поля для задания параметров идентификатора, в верхней части – панель инструментов, где находятся кнопки для выполнения следующих команд:
- Создать новый идентификатор. Вызывает окно для ввода названия нового идентификатора. К названию будет автоматически добавлен двойной знак процента – %%;
- Дублировать идентификатор. Создает новый идентификатор, являющийся точной копией того, к которому была применена эта команда. Необходимо задать только имя идентификатора;
- Сохранить изменения. Сохраняет все изменения в списке идентификаторов, включая создание, удаление и загрузку из файла;
- Переименовать идентификатор;
- Выгрузить идентификаторы в файл. Все сохраненные в программе пользовательские идентификаторы хранятся в конфигурационном файле alta\ ExtraFields.ini. Однако по данной команде идентификаторы можно сохранить в отдельном ini-файле. Выберите один или несколько идентификаторов из списка в появившемся окне (порядок следования можно изменить кнопками-стрелочками) и по нажатию <OK> раскроется стандартное окно сохранения файла, в котором следует выбрать путь (по умолчанию – корневой каталог программы) и название ini-файла;
- Загрузить идентификаторы из файла. Команда загружает в программу идентификаторы, сохраненные ранее в отдельных ini-файлах по команде «Выгрузить идентификаторы в файл». Если при загрузке обнаружится совпадение имен с уже имеющимися в редакторе идентификаторами, то будет предложено заменить имеющийся на новый или задать для нового другое имя.
- Отменить все изменения. Команда отменяет все изменения в списке идентификаторов, включая создание, удаление и загрузку из файла.
Параметры идентификатора
В нижней части окна со списком пользовательских идентификаторов располагается группа полей для ввода параметров выбранного идентификатора. После выполнения команды «Создать» для нового идентификатора отображаются только два основных поля:
- Выберите тип идентификатора – здесь из выпадающего списка выбирается действие, которое необходимо будет произвести с выбранным полем документа. Если в списке выбрать пункт «Не назначено», то при выгрузке идентификатор будет заменен на значение выбранного поля документа.
- Выберите поле – сюда следует ввести или выбрать из списка имя стандартного идентификатора поля (если выделить поле в окне редактирования электронного документа, то соответствующий этому полю стандартный идентификатор появится в статусной строке - в правом нижнем углу окна). Если в этом поле оставить изначальное значение noname, то при выгрузке этот пользовательский идентификатор будет проигнорирован (на его месте ничего вставлено не будет);
На данный момент в программе доступны следующие варианты действий с полем:
- Применить регулярное выражение – при выборе этого варианта открывается поле для ввода регулярного выражения, которое будет применено при выводе значения указанного поля.
- Взять значение из справочника – в этом случае открываются дополнительные поля:
- два поля группы Выбор справочника – в левом поле справочник выбирается из списка (раскрывающегося по нажатию кнопки в правой части поля), правом – путем выбора файла .dbf (по умолчанию, для выбора файла со справочником предлагается папка alta\ref). При выборе значения любого из этих полей второе поле заполняется автоматически;
- Выберите ключевое поле – поле в справочнике, с которым будет соотнесено значение поля документа, т.е. поле документа будет использоваться в качестве ключа при поиске;
- Выберите возвращаемое поле – выбирается поле в справочнике, значение которого будет возвращено в качестве результата применения идентификатора.
- Взять часть поля посимвольно – из строки значения поля выбрать подстроку, начинающуюся и заканчивающуюся символами с номерами, указанными в соответствующих полях С и По. Кроме того, можно задать обратный порядок отсчета символов (флажок «Отсчитывать с конца»).
- Извлечь слова – аналогично предыдущему варианту, с той лишь разницей, что из значения поля выбираются не символы, а целые слова.
- Значение по запросу – задается несколько вариантов значений для вставки в шаблон при выгрузке (варианты разделяются построчно). Если в процессе выгрузки документа программа обнаружит в шаблоне идентификатор такого типа, выгрузка приостановится и появится окно с предложением выбрать один из заданных вариантов. Если не было задано ни одного варианта или ни один из заданных не подходит, можно в поле ввода ввести произвольное значение. Введенное значение будет вставлено в шаблон.
- Значение в зависимости от значения поля – для выбранного поля предлагается создать список диапазонов значений, которым будут соответствовать какие-то выводимые значения. Пример для кода ТНВЭД (33_1):
0101000000 0101999999 0 4012000000 4012999999 1 0000000000 9999999999 Другое
В этом примере при выгрузке товаров в шаблон для товаров с кодом ТНВЭД от 0101000000 до 0101999999 будет выведено значение «0», для кода от 4012000000 до 4012999999 – значение «1», для всех остальных кодов будет выведено значение «Другое».
Планировщик печати
Используется для автоматической выгрузки документов в шаблон при запуске ГТД.
Для автозапуска планировщика необходимо прописать для gtdw.exe параметр командной строки -w и после параметра указать путь к файлу с настройками планировщика. Например:
C:\Alta\gtdw -w C:\1.ini
В файле с настройками должна быть секция [PrintParams], в которой допускаются следующие параметры:
- DocType - тип документа,
- Dir - наименования папок, из которых выгружать документы (необязательный),
- RootDir - выгружать или нет из корневого каталога (по умолчанию не выгружает),
- DateFrom - начальная дата документа,
- DateTill - конечная дата документа,
- TemplateName - путь к шаблону,
- Registered - выгружать только зарегистрированные (по умолчанию выгружает все),
- DirNoPrint - папки, из которых НЕ выгружать (не обязательный).
Например:
[PrintParams] DocType = GTD Dir = Dir1,Dir2,Dir2\SubDir RootDir = 1 DateFrom = 22.12.2011 DateTill = 28.12.2011 TemplateName = C:\Alta\template\GTD\Platechi.XLS Registered = 1