Имя: Пароль:
1C
1C 7.7
v7: 1C v6.0 Дата не в интервале операций
0 ShAV
 
14.07.14
16:13
После перехода с однопользовательской версии на сетевую проявилась "проблема 2000 года". Работаю с 7.7 и 8.2, поэтому в 6.0 опыта нет. CNF файлик кидал и в каталог проги, и каталог БД. Помогите кто в курсе решения проблемы пожалуйста.
ЗЫ На форуме искал. Обуждения есть, решения нет.
1 aka AMIGO
 
14.07.14
16:21
(0) попробуй почитать здесь..
http://www.ci.ru/inform1_99/16.htm

а я дома посмотрю, за какой год у меня 1cv6.exe
2 aka AMIGO
 
14.07.14
16:24
+1 >>Метод решения

И в случае "1С:Бухгалтерии" версии 6.0, и в случае "1С:Предприятия" используется один и тот же простой механизм, известный как "логический диапазон дат". Вместо того, чтобы работать с абсолютными датами, что потребовало бы увеличения числа байтов, отводимых под хранение даты, формат представления не меняется, но имеется в виду, что столетие начинается не с 1900 года, а с года, задаваемого пользователем. Интересен предлагаемый разработчиком способ задания года начала столетия - фактически, он определяется смещением относительно текущего года. Например, если это смещение равно 50, то рабочим диапазоном программы будет период, начиная с 1999-50=1949 года по 2049 год. В следующем году диапазон автоматически сместится на год - с 2000-50=1950 по 2050 год, и так далее. Таким образом, предлагаемый подход имеет два несомненных достоинства.

    Не требуется модификации баз данных - то есть владельцу релиза версии 6.0, несовместимого с 2000 годом, достаточно просто обновить исполняемые файлы программы. Конвертировать данные не нужно.
    Достаточно один раз задать смещение логического диапазона столетия, и реальное столетие, в пределах которого будет работать программа, каждый год будет автоматически корректироваться. (Каждый третий пользователь после приводимого выше примера недоверчиво спрашивает, а в 2049 году нужно будет снова задавать начало столетия? Так вот: "не нужно".)

Способ, которым задается смещение логического диапазона дат для "1С:Бухгалтерии" версии 6.0 и программ системы "1С:Предприятие", несколько различен. В первом случае используется константа YearOfCentury, находящаяся в секции [Values] конфигурационного файла 1SBW.CNF. Хочу обратить ваше внимание на следующий нюанс - этот файл может находиться как в каталоге базы данных, так и в каталоге исполняемых файлов программы, но при существовании и того, и другого обрабатывается файл, находящийся в каталоге базы данных. Если файл не существует, программа будет работать некорректно, хотя повреждения базы данных, как в случае DOS-версий, не будет. На это следует обратить внимание, в основном, при обновлении релиза, так как при полной инсталляции файл 1SBW.CNF создается автоматически. Детальное описание способа задания смещения логического диапазона дат находится в упоминаемом ранее файле readme.wri. В случае программ системы "1С:Предприятие" смещение логического диапазона дат задается общим параметром "Год начала рабочего столетия". В отличие от "1С:Бухгалтерии" версии 6.0 здесь смещение задается неявно годом начала рабочего столетия, рис.3.<<

http://www.ci.ru/inform1_99/1c3.gif
3 Fedor-1971
 
14.07.14
16:26
(0) Как мне помнится где-то в 2000 году был выпущен новый exe, где можно было задать начало века, типа 1950
4 ShAV
 
14.07.14
16:28
Спасибо за отклики.

(1) Это уже читал. Там про файл cnf. Ложил. Не взлетает.

Причем подключаюсь к БД с локальной версии exe - все ОК. Локальная версия еще старше... ППЦ какой-то. Скоро бухи прибьют за срыв отчетности за 1 полугодие :)
5 aka AMIGO
 
14.07.14
16:30
(4) а перенести в 7.7 быстренько никак нельзя?
6 ShAV
 
14.07.14
16:31
Нееее. Предлагал. Тетки ортодоксальные
7 kobzon
 
14.07.14
16:34
(4) Кто ж делает переходы в период отчетности?
8 ShAV
 
14.07.14
16:36
(7) Вернуть хоть сейчас. Все в архивах есть. Потому и переход, что не успевают по одной работать в программе
9 DeiMos
 
14.07.14
16:51
В параметрах 1С:Предприятия ("Сервис - Параметры - Общие") устанавливается значение параметра "Год начала рабочего столетия". Данный параметр используется системой в тех случаях, когда значение параметра "Число цифр года в представлении даты" равно 2. В этом случае при вводе даты указываются только две цифры года. В зависимости от значения параметра "Год начала рабочего столетия" эти цифры года относятся к одному или другому столетию. Фактически, данный механизм позволяет указывая 2 цифры года вводить даты как в двадцатом, так и в двадцать первом веке.

Значение параметра используется системой следующим образом. Если введенные две цифры года больше двух последних цифр заданного в параметре года, то введенная дата будет относиться к тому веку, к которому относится заданный год. А если две введенные цифры меньше даты двух последних цифр заданного в параметре года, то введенная дата будет относиться к следующему веку, по отношению к тому к которому относится заданный в параметре год. Например, если задан 1940 год, то дата 01.01.42 интерпретируется как 1 января 1942 года, а дата 01.01.39 - как 1 января 2039 года.

Одной из типичных ошибок пользователей является установка в данном параметре 2000 года. Это значение фактически не позволяет ввести дату в двадцатом веке.

Рекомендуемым значением данного параметра является 1940, что позволяет вводить даты в интервале от 1941 до 2040 года. В этом случае рабочим столетием является интервал от 1941, до 2040 года, к которому и будет относиться вводимая дата.
10 ShAV
 
14.07.14
17:09
(9) Речь идет о версии 6.0. В теме указано. А Вы о какой версии?
11 Хряк
 
14.07.14
19:18
релиз сетевой какой
12 ShAV
 
14.07.14
19:24
В свойствах файла:

в шапке "версия файла 6.0.1.24"

в доп. сведениях "версия продукта 6.0.024" "версия файла 6.0.024"
13 ShAV
 
14.07.14
20:05
Проблема решена. Может кому понадобится тоже 6.0 :)
Никакие файлы cnf и прочие не помогли. Вообще их удалил. Ответа ни на мисте, ни в других местах не нашел.

Порядок такой:
1. После того как настроили доступ к базе не трогаем никакие настройки по сменам периода журнала операций, итогов и т.д.
2. Закрываем программу и удобным способом в файле БД с наименованием 1SBOPER.DBF нужно увеличить даты по полю OPERDATA, которые меньше 2000 года, на 100 лет. Я написал обработку с одной кнопкой и процедурой
    ДБФ = СоздатьОбъект("XBase");
    ДБФ.ОткрытьФайл("C:\1SBW6\DB\1SBOPER.DBF");
    Если ДБФ.Открыта() = 1 Тогда
        го = ДБФ.Первая();
        Пока го = 1 Цикл
            ТекДата = ДБФ.OPERDATA;
              Год = ДатаГод(ТекДата);
              Если Год < 2000 Тогда
                  ДБФ.OPERDATA = Дата(Год + 100, ДатаМесяц(ТекДата), ДатаЧисло(ТекДата));
              КонецЕсли;
              ДБФ.Записать();
              го = ДБФ.Следующая();
        КонецЦикла;
        Предупреждение("Обработка завершена.");
        ДБФ.ЗакрытьФайл();
    Иначе
        Предупреждение("НЕ смогли открыть Базу!", 2);
    КонецЕсли;

3. После обработки запускаем 6.0 в монопольном режиме (с ключом /m) (в моем случае C:\1SBW6\1SBW.EXE /ddb /uUSERS\GB\ /m)
4. Далее меню Операции/Интервал операций задаем любой интервал и нажимаем установить.

Все. БД полностью рабочая.
14 Мимохожий Однако
 
14.07.14
20:22
Взял бы версию 6.0.034 и тогда помогли бы предыдущие советы. Но всё равно - молодец.
15 torgm
 
14.07.14
20:53
(13) Вот ведь.. еще встречаются, я в прошлом году крайнего на 6.0 перевел с 6.0 на Бухгалтерия 2.0 пять лет упиралась... Перешла, понравилось, теперь радуется...
16 ShAV
 
05.08.14
11:52
Появилось время отписаться по одной загогулинке по теме.
После вышеобозначенных манипуляций неправильно отображаются итоги на начало периода. Операции сдвинули по датам, а начальные сальдо по счетам не пересчитываются автоматом.
Поэтому:
1. Удаляем файлы 1sbglkn.* 1sbsvpr.*
2. Пересчет с периода первой операции
17 1Сергей
 
05.08.14
12:05
вот смотришь на такие темы и думаешь "а я всё-таки ещё не динозавр" :)
18 ShAV
 
06.08.14
12:40
(17) кто платит тот и музыку танцует
19 NikVars
 
06.08.14
13:24
(17) Ты еще в яйце?!
:)