Дело не столько сложное, сколько муторное.
Нужно в спецфункции подготовить источник данных, затем вызвать существующую типовую форму. И либо, продублировать поля источника, сделав их аналогичными полям в самом БЭСТе, либо создать свой источник и перепривязать поля в форме.
Но таким образом мы можем получить последоательность отчётов, но не отчёт на N страницах, включающий в себя все документы. На каждом отчёте нужно будет нажимать F9, чтобы он напечатался.
Желание получить все документы одним отчётом и нажав F9 один раз все их распечатать, приводит к значительному усложнению работы. Потребуется серьёзная переработка стандартной формы, поскольку она поддерживает только один документ.
Денис пишет:
А в этот клиент-банк в текстовом формате можно п/п передать?
Этого, к сожалению, я не знаю. Но если есть выгрузка в txt, то с большой долей уверенности можно утверждать, что есть и загрузка из txt. Поскольку именно txt является у 1С стандартом.
Попробуйте использовать "TXT-формат", имя описания - "SY3". Этот вариант формирует текстовый файл стандартного для 1С формата. Подложите полученный файл в каталог c:\dbf, возможно, что клиент-банк ожидает что-то подобное.
У Сбербанка несколько "клиентов" и ещё Интернет-банк. Сообщите название и версию ПО, используемого Вашим территориальным банком, тогда, возможно, я смогу Вам помочь.
Дмитрий Орлов пишет:
У меня мечта , что когда-нибудь у БЭСта будет открытый код и можно будет только чуть-чуть подправить там в интерфейсе, а не рисовать полностью новый своими руками.
Смею Вас заверить, "чуть-чуть" очень часто не получается. Как назло, разработчик реализует функционал таким способом, который наименее удобен для Ваших исправлений. :-)
<dDate>
Any Date value, except for an empty date, can be passed. The default is the return value of Date() .
<nMonth>
Alternatively, the numeric month between 1 and 12 can be passed.
Return value
The function returns the number of days of the specified month as a numeric value.
TaTiTa пишет:
А что разве больничные листы и отпуска являются специфичными начислениями?
Вот у Вас больничные, допустим, БОЛ и БО1, а меня БОР и БОФ, с отпускными ещё хуже - как их только не называют. Как разработчик может однозначно определить, что из Ваших начислений относится к больничным, что к отпускам?
Сергей Иваницкий пишет:
что-то не так, на экране все появляется но при нажатии клавиши Enter курсор просто перескакивает на очередное окошко и продолжает редактирование
Добавьте перед READ оператор
Код
getlist:=array(0)
Цитата
Сергей Иваницкий пишет:
и еще ругается что переменная COL_SHEADR не определена, я думал это какойто стандартный цвет
Стандартный, но он не хранится в переменной, а подставляется препроцессором при компиляции. Поставьте вместо COL_SHEADR сразу значение - 'gr+/b*,w+/n,,,w+/b*'
Цитата
Сергей Иваницкий пишет:
но ShadowBox() появляется в разных местах экрана в зависимости активного окошка
shadowbox использует координаты относительно окна, установленного wopen(). Нарисуйте рамку сами с использованием @ по абсолютным координатам.
Отношение (relations) пересчитывается при изменении номера записи в родительской базе ('docs'). При этом указатель в дочерней базе ('main') устанавливается на запись, соответствующую выражению связи. Единовременно. При этом никаких дополнительных ограничений на передвижение указателя по дочерней (main) базе не вводится. Сделали dbgotop() - получили указатель на первой записи.
В вашем случает надо изменить условие цикла, выкинуть dbgotop() и перебирать записи, пока docs->pro=main->nnoper, поскольку при установленной связи указатель автоматически переместится на первую запись в main, с сответствующим значением nnoper.
Второй вариант - установка setscope на main и обработка всех записей main, попавших в скоп.