Суть проблемы в невозможности работы программы с датами позднее 31.12.2019.
Так уж получилось, что для определения года даты "БЭСТ4" использует только две последние цифры. Столетие диапазона дат определяется при компиляции программы. Программа была откомпилирована с началом периода в 1920 году, поэтому дату 2020 она воспринимает как 1920 год. Обойти данную проблему очень просто - достаточно создать спецфункцию, состоящую из одной строки - "Set Epoch To 1930" и обеспечить запуск этой функции перед началом работы с программой. Операцию необходимо выполнить для каждого модуля "БЭСТ4". Для создания спецфункции, например в "АРМе Главного бухгалтера" заходим в Книгу учета операций, далее - Ctrl-F5, F11, Alt-N, даем имя файлу, например year2020.prg, в файл прописываем строчку "Set Epoch To 1930". Нажимаем F2 - выбираем опцию "без отладки". Далее опять заходим в Книгу учета операций, Ctr-F5, F4, как-то обзываем функцию и выбираем наш файл "year2020.hrb". Далее однократный запуск спецфункции позволит работать с модулем до выхода. Аналогично поступаем с другими модулями БЭСТ4.
Будут вопросы, зарегистрируйтесь как Пользователь и обращайтесь через личное сообщение пользователю User216.
2. Запускаем программу в папке BIN со следующими параметрами:
year2020.exe <имя файла> <год>, где
имя файла - имя экзешиника модуля БЭСТ в папке BIN,
год - год в операции set epoch.
Например: year2020.exe bank.exe 1930 - патч модуля "БАНК" до 2030 года.
Напоминаю, что перед использованием данной программы крайне желательно сохранить экзешники из папки BIN и выгнать всех из БЭСТа.
Добавление от 05.01.2020.
Дополнение для "счастливых" обладателей 16 разрядных версий (версии до 10 включительно). У Вас программа возможно работать не будет (другой компилятор). Для проверки не было версии, ключа и времени.Увы ! :(
Добавление от 06.01.2020.
Думал, что это естественно, но решил напомнить - После использования программы сделайте ПОЛНУЮ индексацию базы из настройки.
Добавление от 20.01.2020.
Для владельцев нелицензионных версий БЭСТ4: После применения патча высока вероятность, что БЭСТ4 работать не будет.
Будет в течении недели. Только будет выложена в другой ветке - - https://bestfour.ucoz.ru/news/kak_nastroit_behst4_dlja_raboty_s_ponizhennymi_stavkami_strakhovykh_vznosov_soglasno_fz_102_fz_ot_ot_01_04_2020/2020-04-30-21
Здравствуйте. Как-нибудь решилась проблема с удалением документов на складе после закрытия базы до 2021 года? А то надо было подтянуть одну фирму за последний квартал, закрыли базу до июля, ввели кучу документов, надо удалить накладную, а тут - Дата проводки не входит в допустимый период с 01/07/21. Версия SP100, всё пропатчено, до закрытия периода работало.
А где его указать? Управление оперативном периодом - пусто. Изменение дат в файле reorg.dbf никак не влияет. Дату накладной датой меньше расчетного периода склада ставить не дает. Можно поподробнее, пожалуйста. Нашел в "Общая техническая настройка". А какой файл за неё отвечает? Так как поставить дату меньше 1/07/21 не получается. Находится в папке ini файл global_v, менять лучше сразу CURR_BEG и CURR_LDATA. Поставил 20200101, удалять накладные получается. Спасибо. Правда это влияет на остальные армы, на начальный остаток кассы, например.
«Может менять дату и индексировать нужно ДОзакрытия периода в АРМе?» Есть логика, надо проверить...Можно вообще до закрытия как в АРМе так и складе т.е. развернуть 2020г перед закрытием периода, проиндексировать изменить дату на 2030г. в функции СТОД и потом закрытьпо обычной процедуре, сначала склад а потом арм.... Так и сделал – все без видимых изменений.
Функция CTOD: Посмотрел, увидел, похоже на косяк. Дата забита константой в надежде что так долго программы не живут. Найдено 8 шт. Изменил во всех 2020 на 2021. Индексация и проверка – мимо. Изменил во всех 2020 на 2022, проверка- мимо. Решил убрать индексный файл для надежности, пусть перестроит – нет индексного файла, наверное база не индексируется. Странно т.к. явный косяк, но наверное не наш!?
Возможно, нашел источник этой бяки. В папке SCLAD есть файл bases_03.dbf. На основе данных этого файла происходит индексация. В этом файле в поле INDEX в нескольких индексах явно забита дата "31.12.2020". Может надо дату на "31.12.2021" поменять и проиндексировать арм Товары из настройки? У Вас партионный учет включен?
Ответ: Вообще-то странно. Синтаксис команды CTOD предусматривает ввод даты в формате "31/12/20". Может надо "31.12.2121" вводить?
Для контроля поставьте в спецфункцию второй строкой что-нибудь типа "alert(0)" что-бы проконтролировать запуск спецфункции. Вообще-то этот трюк со спецфункцией работает даже на не пропатченных версиях.
АРХИВЫ: может оттуда что прилетает очистил архив на складе полностью – нет эффекта очистить файл ДЕЛМайн.дбф?? очистил встроенным редактором Проиндексировал, Эффекта нет. архив АРМ, очистил полностью = эффекта нет. закрытие Декабря- ВОПРОС: с очисткой архива или без, отвечал всегда с очисткой архива. Надо-бы проверить варианты. Проверил – нет эффекта.
Спец_функция. Видел в шапке, но не пробовал. Патч был понятней. Читал бегло, но в тексте есть неоднозначность для простого бухгалтера неразрешимая: в расширении файла? В одном месте ПРЖ, а вдругом Харбор?
ДЛИННЫЙ_Демо_эксперимент: Около 15 развыполнить однотипные процедуры: закрыть, проиндексировать, проверить склад на удаление расх.накладных. - развернуть демо,склад закрыл сразу до 01/01/20г. - АРМ закрыть с 2004 до 2020г АРМ и проверить каждый год... на удаление 2 расх. накладные одна 20г, вторая 21г. + еще одна 21г Добрался до периода 01-01-20 и в Складе и в АРМ = норм. закрыть склад до 21г и проверить на удаление =норм закрыть арм ЯНВАРЬ 20г = норм, проверяю помесячно... ... закрыть арм НОЯБРЬ 20г = норм !! закрыть АРМ ДЕКАБРЬ 20г и проверить на удаление =ДУРДОМ ? Закрытие Декабря20г в АРМ и сразу проявляется сбой в складе при удалении, т.е. при переходе с Дек20г на январь21г. в АРМ. Предположение: дело не в БД т.к.на разных проявляется одинаково...
Модуль майн(main.exe): «Может патч на "main.exe" криво встал? » Нашел оригинал и обработанный. Выполнил сравнение вТС-Файл-Сравнить по содержимому. найдено 2 отличия по 1 байту. На первый взгляд все нормально, патч отработал правильно. В перспективе можно и перепатчить...
ОСМОТР БД: Тотально пересматриваю все ДБФ файлы, во всех работающихподсистемах. Надеюсь увидеть либо сбой в записях либо параметр регулирующий дату. Внутренний редактор медленно и неудобно, настроил ФАР для просмотра дбф. На клаве это реально быстро просмотреть сотню-другую файлов. Пока ничего не заметил.
Лучше использовать прогу "DBFNavigator" (есть в инете). Просматривать на предмет наличия мусора все файлы - это адский труд. ИМХО лучше начать с файла "user.dbf" в корне базы. Там есть какие-то даты - назначения этих полей я не знаю, но может какой-то мусор записался. Сравнить лучше с файлом из демки.
LookDBF - это плагин к FAR'у , настроил безвозможности редактирования, чтобы случайно не внести дополнительно проблем.
Осмотр user.dbf Обычная картина, без мусора нехарактерного. Немного странное поле user, не ясноназначение и формирование, присутствует символ «-«примерно так 0000-АБ. Смотрелболее раннние версии 2-3летней давности, там аналогично. Демку еще посмотрю...
ЭКСПЕРИМЕНТ: « и посмотрел бы поведение программыс закрытым складом и открытым периодом в АРМе.» Так и сделал, сообщаю результаты. Архив 2020г декабря, перед закрытием периода. Развернул, закрыл период только в складе – все нормально. Закрыл период в арме до 01/01/21 – ошибка выскочила!? связей не осознаю... Вопрос: а где посмотреть протокол восстановления из резервной копии т.к. очень быстро крутится экран, может там есть какие проблемы ? (работает архиватор РАР)
Может патч на "main.exe" криво встал? Попробуйте перепатчить "main.exe" командой "year2020.exe main.exe 1930". Оригинальный "main.exe" записан в той же папке под именем "main1.bak".
Может на Демо закрыть АРМ до 01/01/21г. Там правда упражняться долго надо т.к. много годов. Или можно закрыть 2-3 года а потом переключить указатель начала периода в настройках?
1. Периодзакрывался во всех работающих подсистемах и в АРМ тоже 2. "Началопериода д/склада" записано то-же что и верхней строке экрана, а именно 01/01/21. После закрытия устанавливается автоматически. Пробовал еще закрыть на 1 день т.е. на дату 02/01/21 – для эксперимента – эффект тот-же. 3. Допустимый период работы с проводками" – нет в подсистеме Товары, но есть в настройках предприятия. Дата стоит правильная 01/01/21. 4. Допустимыйпериод работы с проводками: повводилруками 01/01/21 и другие даты тоже – эффекта нет. 5. Закрытиепериода проходило штатно по многократно проверенной процедуре. 6. Проявилосьв 2-х местах т.е. мой случайный косяк маловероятен. 7. Склад –управление оперативным периодом « / / »пустое поле. Кажетсячто тоже экспериментировал – нет результата. 8. Перепроверил, все-ли модули пропатчены.Кажется что все где обнаружен паттерн. 9. Там где период не закрывался и все ещеустановлен 20г – все нормально даже с документами введенными в 21г. 10.Единственное рациональное предположение: прилетел отголосок прошлогодней проблемы 2020
Сегодня смоделировал Вашу ситуацию - ошибка не подтвердилась. Возможно, в январе 20 года Вы экспериментировали с патчем и пропатчили sclad.exe c параметром 1921 только до 31.12.20 ? (см. пост №53 от 09.01.20) Если это так, то необходимо восстановить оригинальный sclad.exe , запустить "year2020.exe sclad.exe 1930" и обязательно проконтролировать чтобы появилась надпись "Update sacсessful". Помню в 20 году у Вас были проблемы с наблюдением сообщений программы патча, поэтому советую запустить патч из командной строки.
-Версия 12.01 СП50. -Запасами не пользуюсь, настроил для проверки - ошибка вылазит аналогичная -Закрыл 2021год и выставил 2022г. Ситуация аналогичная. -Патчил по одному файлу в ФАРе с погашеной левой панелью, сообщения вижу норм.
К сожалению, указанного СП не имею - попробовать не на чем. Вам рекомендую открыть в БЭСТЕ демобазу и попробовать в ней закрыть период на складе до 01.01.21. Если все будет ОК, то причина в Вашей базе, если будут те же ошибки - значит на СП 50 патч как-то не до конца срабатывает. И еще было бы неплохо попытаться вспомнить - Вы 19 год закрывали ДО установки патча или ПОСЛЕ? Если после, то тогда поведение программы кажется еще более странным - ведь для неё непринципиально 20 год, 21 или 29.
1. ДЕМО: развернул, закрыл период только в Товарах на 01/01/21г. Создал Расход.накладную, сохранил, попробовал удалить - все нормально!? Странно?! 2. вспомнить сложно что делал первым, патч либо закрытие в 19г.
Создал Расход.накладную, сохранил, попробовал удалить - все нормально!? Странно?!
Значит, какая-то бяка в Вашей базе. Если есть резервная копия до закрытия я бы восстановил её, сделал бы индексацию из настройки, потом попробовал закрыть период, начиная со склада, и посмотрел бы поведение программы с закрытым складом и открытым периодом в АРМе.
Нежданчик 2021года! После закрытиярасчетного периода 2020г и переходе на период 2021г. ПЕРЕСТАЛИ удаляться документы на Складе(Товары) и в Приходе и в Реализации. При нажатии Ф8 выдает сообщение в красном окне: «Дата проводки не входит в допустимый период с 01/01/21». Во всех других подсистемах все нормально. Бэст4+ Версия 12. Проблема 2020г. решаласьгод назад успешно при помощи патча. Ума не приложу?
Действительно нежданчик ! Прошу ответить на вопросы: 1. Период закрывали только но складе или в АРМе тоже? 2. Что прописалось в "Начало периода д/склада" ("Настройка,справочники"-"Дополнительная настройка"-"Настройка параметров подсистемы") и в поле "Начало расчетного периода" ("Настройка"-"Настройка предприятия"-"Настройка"-"Начальные установки системы учета"), а также в поле "Допустимый период работы с проводками" (Там же в "Общей технической настройке")? 3. Что будет, если в это поле ввести "01.01.21"? 4. Закрытие периода отработало штатно, или были какие-то ошибки? На выходных попробую смоделировать ситуацию с закрытием периода.
У меня в БЭСТ-4 через специальные функции (Ctrl+F5) создавался текстовый файл, а потом вызывалась какая-то программа, которая печатала на принтер чеков то, что было в том файле.
Здравствуйте. В то время когда разрабатывался БЭСТ4 онлайн касс ещё не было. Со старыми кассами работал модуль БЭСТ4 БЭСТ-КПМ(Кассовый программный модуль) и модуль "Торговый зал". В 2021 году смотрите в сторону БЭСТ5 или 1С.
Новая проблема со скидыванием в архив. Скинуть-то получается при установленной эпохе, но при следующем запуске сразу выкидывает окно с предложением сделать период равный главному бухгалтерскому (он у нас 2015 года). То есть, похоже, при запуске модуля оно сразу смотрит период (20-ый модуля и 15-ый буха, и делает вывод, что 20 меньше 15). В принципе, можно согласиться, с тем, что оно предложит сравнять с датой как у модуля главного буха, но не факт, что не вылезут проблемы. Либо же ничего не скидывать в архивы. У кого немного записей, то еще можно несколько лет продержаться, и перейти уже на другую систему.
Всё-таки попробуйте патч year2020_16bit запустить. Там все модули патчутся. Здесь люди разное пишут - у кого-то получается, у кого-то нет. Полной картины нет. Попробовать не на чем - доступа к 16-битным версиям не имею. В любом случае, Вы ничего не потеряете, если не поможет, вернёте экзешники назад.
Принцип работы программы year2020 следующий - ищем паттерн 64-5C-05-5D-80-07 и меняем 80 на 8A. Ищите его в экзешниках в папке BMOD и меняйте. Если ничего не найдёте - уменьшайте паттерн, начиная с младших байтов и повторяйте поиск до успеха. Самый дикий вариант - ищете 80-07-это 1920, меняете на 8A-07 и проверяете. Если не подходит, возвращаете всё назад и ищете следующее вхождение. Для этих целей лучше всего подходит HexEditor - для этого подойдёт и бесплатная версия.
0x8007 первое, что пробовал найти. Но оказалось, что их очень много... Я даже потом на клиппере писал программу с установкой SET EPOCH TO 1920 и SET EPOCH TO 1930 и сравнивал побайтно, легко нашел. А вот в БЭСТе - на нашел...
Сигнатура выше - это для 32битной версии, для нашего случая - 05-00-38-80-07(в HEX). Попробуйте поискать это вхождение и поменять 80 на 8A - не думаю, что их будет много.
Сейчас проверил текущий БЭСТ5/SP55. Допускает ввод дат до 31.12.34.Лозунг ИС - покупайте программу на 15 лет, затем Ваша программа превратится в тыкву! Странно, что БЭСТ4 версии 8, который продавался ХЗ когда доработал до 2020 года - аттракцион невиданной щедрости от Интеллект-Сервиса.
Кстати, пытался на официальном форуме сайта bestnet.ru описать решение проблемы. Но получилась целая история. Зарегистрировавшись, я не увидел нигде способа ни оставить сообщение, ни создать новую тему. Написал админу в личку. Он сказал, что всё должно работать. Я ему послал скриншоты, сказал также, что с разных операционок заходил и браузеров. Аж через несколько дней ответил, что у них какая-то спам-защита стоит, и могут постить только определенные пользователи (Он что, сразу этого не знал?). В общем, он открыл мне доступ, я написал сообщение, но оказалось, что оно требует проверки модератором. Уже прошел почти месяц, а сообщения всё нет. Там лишь пишут, что проблема решаема, надо всего лишь позвонить к ним, и в телефонном режиме решить проблему.
Есть прогресс! В старом Бесте надо писать в prg файле: Set(5, 1930) Случайно увидел подобную команду в бестовских каких-то файлах. А потом методом перебора. Щас буду тестировать.
А если еще ввести Set(4, "dd/mm/yyyy") можно вообще вводить дату с 4-я цифрами.
Вы его должны сами создать в определенной папке. Скорее всего папки здесь: папка_с_бестом\PRO\PLUGINS\PRINT\ и в каждой подпапке (BANK, CASH и т.д.) сделать тот prg-файл. Можете назвать его как угодно. Я назвал SetEpoch.prg
Только есть одна проблема с вызовом этого prg. Если в модулях "склад", "касса", "налоговые накладные" можно сделать через Ctrl+F5 в основных местах работы, то в других модулях подобных вызовов может не быть. Приходится открывать справочник партнёров (хорошо, что он есть во многих модулях), и там создавать подобную спец.функцию. Хуже всего оказалось в модуле Зарплаты. Но и это решаемо, в какую-то печатную форму быстрого отчета загнать вызов fileeval('SetEpoch.prg'). И теперь попросту надо сделать этот отчет, чтобы установилась нужная эпоха.
Здравствуйте! У меня БЭСТ 4+ локальный sp95. При вводе записей с системной датой все проходит. Я так понимаю в базу пишется 1920? А Вы не знаете, что делают спецы из фирмы для решения проблемы? Я имею ввиду идеологически? Если можно скиньте exeшрик на почту komprogkursk@yandex.ru. Буду пробовать все. Заранее спасибо