Здравствуйте, господа разработчики!
Замечены маленькие неувязки в алгоритмах выгрузки.
ДЕЙСТВИЯ: смета, составленная в НБ ФЕР-2001, выгружается по шаблону Смета по ФЕР (10-ти графка)
Первое.
ПРОБЛЕМА: в результате выгрузки сметы, при выборе формы "Форма № 1" в заголовке документа не печатается должным образом строка источника уровня цен "Смета составлен (на)...."
ОПИСАНИЕ ОШИБКИ (мнение): Ошибка в том, что печать этой строки, предусмотренная алгоритмом, производится не в ту ячейку. Не учтено то, что количество строк ДО положения строки "Смета составлен (на)...." в шаблонах Формы № 1 и Формы № 1а на листе LS_Header_11_0 книги LS_FER_2009.xls не одинаково. Да, нелегко с первого взгляда обнаружить эту ошибку: вместо нужной информации в готовом документе отображается текст по умолчанию, забитый на листе шаблона (хотя в программе вшит код с этим же текстом, зачем он тогда в шаблоне?) да и дальнейшая выгрузка происходит штатно, потомучто ОБЩЕЕ количество строк в данном фрагменте и в той, и в другой форме совпадает и равно 23 шт. Про Акт по ФЕР и Акт КС-2 по ФЕР не скажу - не разбирался.
РЕШЕНИЕ (вариант): Если локально (только для Сметы по ФЕР), то самое простое в процедуре PrintOneLocalHeader модуля unit_ls_fer (LS_FER_2009.xls) перед первым запуском PrintTitleCost добавить отсечку по параметру DocTwoLevel, которая бы регулировала ординату ячейки вывода данных в диапазоне dst (в данном случае у+20 или у+18). Если глобально, то надо смотреть наличие подобной ошибки при выгрузке Акт по ФЕР и Акт КС-2 по ФЕР и оптимизировать код коллективно для всех трех случаев с точки зрения быстродействия.
Второе.
ПРОБЛЕМА: при тех же действиях в результате выгрузки не реализуется, заложенное в алгоритме, графическое форматирование выводимых данных в ячейке обоснования сметной строки при заданном условии дополнить шифр обоснования кодом поправки, а именно: символы обоснования (вида 00-00-000-00) и следующий за ними набор символов, описывающих код поправки, выводятся одинаковой высотой шрифта.
ОПИСАНИЕ ОШИБКИ (мнение): здесь процедура FormatSmetaStr модуля unit_ls_fer (LS_FER_2009.xls), где содержится команда назначения размера шрифта на всю сметную строку, выполняется ПОСЛЕ процедуры FormatEndText (модуль uSmeta, книга SmetaUtils.xls), которая, в свою очередь, и регламентирует какие знаки из всего текста внутри ячейки будут какой высоты и начертания. Поэтому уже отформатированный должным образом текст повторно подвергается обработке по ключевому, в данном случае, параметру (iSizeFont).
РЕШЕНИЕ (вариант): Поскольку для текста, выводимого в ячейку обоснования сметной строки, высота каждого символа полностью определена процедурой FormatEndText (модуль uSmeta, книга SmetaUtils.xls), то повторно это делать именно для этой ячейки, считаю, нет необходимости. Таким образом, предлагаю в процедуре FormatSmetaStr (модуль unit_ls_fer , книга LS_FER_2009.xls) при задании параметров диапазона для команды SetFont исключить из этого диапазона ячейку с данными обоснования сметной строки, т.е. разбить диапазон [1;NmGraf] на два интервала [1;xTab - 1], [xTab + 1;NmGraf] и последовательно выполнить на них SetFont.
______________
Конкретные проблемы - конкретные решения