Чтобы было проще, предварительно составьте список всех каталогов, начиная с текущего.
Для этого напишите рекурсивную функцию, используя directory().
Вторым параметром в directory() можно передавать атрибут 'D', тогда функция будет возвращать только вложенные каталоги.
После получения списка всех каталогов перебирайте их и запрашивайте файлы.
FormulParsBlock(cFormul, aPars) используется для получения блока кода там, где по синтаксису невозможно просто написать выражение "блок кода". Например, внутри другого блока кода.
Function DBxEval( cAli, xOrd, cFil, aScp, bProc, bFor, bWhile, bInit, bPost) описана только в Зарплате и заменяет связку dbpush(cAli, xOrd, cFil, aScp) - dbeval(bProc, bFor, bWhile) - dbpop()
bInit выполняется перед условным dbeval(), bPost после
Исправил ошибку, которая не позволяла заменять в архиве более одного кода дохода.
В принципе, добавляя в настройке секцию <КодДоход> можно выделить не только премию, но и другие виды дохода (отпуска, больничные...)
Доработал СЗВ-М с учётом декабрьских изменений в формате выгрузки (новые пространства имён и наименование программы подготовки)
Хотя, вроде, спецоператоры и так принимали к отправке без вопросов.
Добавлена возможность выделять премии в код 2002/2003 с учётом районного коэффициента, в случае, если ранее районный коэффициент считался с общей суммы зарплаты. Для учёта районного надо в запросе указать действующую ставку, например для Пермского края районный коэффициент составляет 15%, значит надо указать коэффициент 1,15. Если районный добавлять не нужно, то следует указать коэффициент 1.
Исправлено:
1. Увеличена скорость работы в режиме замены вычетов
2. Добавлена возможность для старых вычетов установить период действия по 2015.12, а новые создать с датой начала действия 2016.01
1. Автоматическое создание таблиц тарифов на 2017 год с новыми максимальными базами.
2. Добавление новых кодов дохода (премии) с возможностью выделить такие доходы в архиве с января 2016 года.
3. Добавление новых кодов вычетов с возможностью замены старых кодов на новые в архиве с января 2016 года и в картотеке персонального учёта.
4. Добавление ставок НДФЛ на 2017 год.
Добавил режим "Сверка РСВ-1 и СЗВ-М".
Есть у меня один санаторий, большие путанники. У них много договорников, кто-то на платных услугах, кто-то с разовыми работами. Проблема со стажевыми периодами, то забудут человека в СЗВ-М показать, то, наоборот, покажут, а он не работал.
Чтобы не нарываться на 500 рублей штрафа за каждого ошибочного человека в СЗВ-М, перед отправкой РСВ-1 имеет смысл проверить, совпадают ли поданные за квартал СЗВ-М со стажевыми периодами в РСВ-1.
Режим в меню так и называется - "Сверка СЗВ-М и РСВ-1"
Предварительно надо в одну папку поместить пачки раздела 6 РСВ-1 и пачки СЗВ-М за последний квартал отчётного периода.
Дело может быть в десятичном разделителе (точка или запятая). Причём, определить какой используется разделитель - та ещё задачка. Я делаю так, как когда-то вычитал на VBA-шном форуме.
Есть, правда нюанс. ПОДСТР() и ПИ() - это функции в русском Excel. Теоретически, если программу запустить, к примеру, на чистом "англичанине", то разделитель не получим. Но мне такие пока не попадались, я не заморачиваюсь.
Добрый день.
"Учёт счетов-фактур" - windows-модуль. Он построен на совсем других принципах. Функции режима "синих" окон (наследие БЭСТ-4) здесь не используются в принципе. Для создания диалога в этом модуле надо рисовать и компилировать форму. Можно, конечно, подгрузить библиотеки "синих" окон, используя функцию LoadLibrary(), но работать они всё равно не будут, поскольку "синие" окна надо предварительно инициализировать. Но я, лично, не знаю как это сделать.
F3 и F7 назначаются автоматически в initlist()
Возможно, что из-за того что у Вас всего один вариант сортировки/поиска. initlist() не выводит диалог выбора варианта.
А если тэг, указанные в aSortSekk совпадает с тэгом, установленным перед вызовом Initlist(), то ничего не происходит и Вам кажется что сортировка не работает.
aHotKey содержит три подмассива, для Ctrl, Alt и Shift соответственно (за порядок следования не ручаюсь). В примере заполнен только первый подмассив. для Ctrl
Вам следует разнести свои горячие клавиши по подмассивам в зависимости от используемого модификатора.
У Вас переменная _codePartn объявлена как local
В исходной функции она видна, поэтому фильтр устанавливается
А в функции initlist ваша локальная переменная уже недоступна и выражение фильтра рассчитано быть не может.
Выхода два - либо создать выражение фильтра как блок из строки с готовым значением _codePartn
Либо объявить _codePartn как private
Писать его надо перед вызовом initlist. Или навешивать установку фильтра на setkey(), если его надо устанавливать/отменять оперативно, в процессе работы.
В выгрузке СЗВ-М исключил из обработки карточки внутреннего совмещения, чтобы избежать лишних предупреждений в протоколе.
Если предупреждений нет, теперь протокол не выводится. Добавил сообщение о количестве выгруженных сотрудников.
Добавил возможность формирования СЗВ-М.
В разделе "Выгрузка из БЭСТ-4+" появился пункт "СЗВ-М"
Выгружаются работники, которые на основании даты приёма на работу и даты увольнения попадают в отчётный месяц.
Не выгружаются работники, не имеющие начислений в периоде и, одновременно, не имеющие специального стажа.
Не выгружаются работники без страховых номеров.
Формируется протокол, в котором выводятся все работники, не выгруженные по указанным выше обстоятельствам.
Кроме того, припоминаю, что в начале года исправлял какие-то ошибки в выгрузке данных по доптарифу.
Никаких макроподстановок (&) в fileeval() быть не может.
Максимум что можно - это использовать функцию FormulParsBlock(cFormul, aPars), которая возвратит блок кода, который можно исполнить в aeval или dbeval
Пишите hrb и вызывайте его из fileeval() c помощью hfileeval()
Текущая версия pfr_xml позволяет выгрузить данные из БЭСТ-4+ за 1 квартал 2016 года и сформировать файлы, которые принимаются в "Документы ПУ6".
Я не вижу необходимости каких-либо доработок.