Имя: Пароль:
1C
1С v8
Как учитывать версию конфигурации при проведении документа?
0 PfP
 
12.01.12
14:40
Доброго времени суток, уважаемые форумчане.

В данный момент разрабатываю собственную конфигурацию на платформе 8.2. Естесственно структура базы потихоньку меняется и, соответственно, меняются модули документов. Бывает ситуации что документы, которые были созданы до определенного момента, заполнены по "старому принципу" и их необходимо перепровести, но, опятьже, по "старому принципу". Очень напрягает ковырять всякими обработками, если вдруг приходится изменить и перепровести документ "старой" версии.

Вот, собственно, вопрос: был ли у кого-нибудь опыт работы с версиями документов? И как реализовывались подобные вещи?

На данный момент просто хочу ввести константу "номер релиза" и в каждом документе добавить реквизит "версия", в который и записывается значение константы "номер релиза" при создании. А в модуле документа, в процедуре ОбработкаПроведения выполнять проверку. Но сначала хотел бы посоветоваться, может есть интереснее способ).

Заранее благодарен.
1 Buster007
 
12.01.12
14:46
хм... а это не говорит о том, что если ииспользовать какие-то старые механизмы проведения, то документ будет неправильный в принципе... и как быть уверенным в том, что база показывает правильную информацию?
2 Amiralnar
 
12.01.12
14:50
Интересный способ реализован в типовых. Что может быть еще интереснее?
3 PfP
 
12.01.12
14:55
(1) например, сейчас возникла ситуация: сейчас при проведении документа "ВыпускПродукции" происходит списание материалов (регистр "ОстаткиМатериаловНаСкладах" - остатки и обороты) и добавляет запись в регистр "РасходМатериалов" (там только обороты), а раньше делалась запись только в оборотный регистр. И сейчас при проведении старых документов появляются минусы.

*раньше дастаточно было смотреть только обороты за период.
4 PfP
 
12.01.12
14:56
(2) честно не в курсе как там реализовано))
5 ДенисЧ
 
12.01.12
14:58
Ну я делал как-то так:
Если ДатаДок > Дата1 Тогда
  СделатьНовыеДвижения();
КОнецЕслИ;
6 Fragster
 
гуру
12.01.12
14:58
Процедура ОбработкаПроведения()
 Если Дата > '20120112' Тогда
   Проведение20120112();
 ИначеЕсли Дата > '20120101' Тогда
   Проведение20120101();
 Иначе
   Проведение();
 КонецЕсли;
КонецПроцедуры
7 PVV65
 
12.01.12
15:03
В любом случае поведение документа зависит от даты внедрения новых правил проведения, а не от релиза. Причем для каждого документа она своя. Поэтому, пиши в каждом документе как в (5).
8 PfP
 
12.01.12
15:08
(2) сейчас сижу ковыряю типовую на этот предмет. там немножко другое. Там изначально учет предопределен. обрабатываются только незначительные изменения. А здесь другое, здесь я не знаю как учет будет вестись через год, два и т.п. Если требования к учету меняется, то выходит другая конфигурация.

(5) (6) (7) попробую, спасибо за коменты.
9 Maxus43
 
12.01.12
15:19
(8) в типовой так зачет авансов сделан например. до 2008 года переоценивались, после - нет. вот и изменение требований учета, но зависит то от даты