Имя: Пароль:
1C
1С v8
план обмен последовательность выгрузки разных видов документов
0 gusden
 
16.05.12
14:22
Доброе время суток.
Помогите разобраться с проблемой при обмене.
Есть два видов документа "ИзменениеСтатусаКоробки" и "ОтправкаРаспоряжения" в удалённом офисе вводят сначала ИзменениеСтатусаКоробки потом ОтправкаРаспоряжения, но при загрузке в головной офис загружается сначала ОтправкаРаспоряжения.
Как повлиять на порядог загрузки(выгрузки) документов?
1 gusden
 
16.05.12
16:05
объясню суть проблемы более подробно.
документ "ИзменениеСтатусаКоробки" должен находиться на временной оси раньше чем документ "ОтправкаРаспоряжения" в удалённом офисе они так и вводятся. Между удалённым офисом и головным офисом существует разница во времени. Поэтому при загрузке документов в головной офис если время документа больше текущего документы проводятся текущим временем. Если ввести "ИзменениеСтатусаКоробки", обменяться, ввести "ОтправкаРаспоряжения" и опять обменяться то всё ок. Но если попробовать ввести "ИзменениеСтатусаКоробки" и "ОтправкаРаспоряжения" и потом попробовать обменяться то возникает проблема. Первым при обмене загружается "ОтправкаРаспоряжения" и при попытке поменять время и перепровести документ становится раньше движения по "ИзменениеСтатусаКоробки" и вываливается ошибка.
2 gusden
 
16.05.12
16:50
Народ подскажите, хоть в какую сторону капать...
3 acsent
 
16.05.12
16:54
>> Поэтому при загрузке документов в головной офис если время документа больше текущего документы проводятся текущим временем
туу ошибка
4 gusden
 
16.05.12
17:08
(3)Мне надо поменять время документа на текущее и я это делаю в процедуре
Процедура ПриПолученииДанныхОтПодчиненного(ЭлементДанных, ПолучениеЭлемента, ОтправкаНазад)
       //Сделать проверку приходящего сообщения с имеющимся в базе
       //и в случае совпадени оставлять дату у первого документа
       // При получении данных из офисов корректировка времени
       Если ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.ЗаказПокупателя")
           ИЛИ ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.ПотребностьПокупателя")
           ИЛИ ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.ИзменениеСтатусаКоробки")
           ИЛИ ТипЗнч(ЭлементДанных) = Тип("ДокументОбъект.ОтправкаРаспоряжения") Тогда
           Если ЭлементДанных.Проведен Тогда
               Если ЭлементДанных.ЭтоНовый() И ТекущаяДатаСервера()<ЭлементДанных.Дата Тогда
                   ЭлементДанных.УстановитьВремя(РежимАвтоВремя.ТекущееИлиПоследним);
                   ЭлементДанных.Записать(РежимЗаписиДокумента.Проведение);
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;
КонецПроцедуры
И в большенстве случаев это корректно работает, но вот в описанной выше ситуации возникает проблема.
Пока единственное что приходит в голову это менять время документов не во время обмена а после. Т.е. после обмена отобрать документы и поменять их дату.
5 Serg_1960
 
16.05.12
17:39
(0) "Как повлиять на порядок загрузки(выгрузки) документов?" - ни как. Только если самостоятельно парсить файл сообщения, "расставляя в нужном порядке" объекты в файле сообщения. Но это всё равно не имеет смысла, если у вас компьютеры не синхронизируются по времени - не так, так по другому можете получить конфликтную ситуацию.

Единствено разумный выход (имхо) - реализовать синхронизацию времени на всех компьютерах, где работают с этими документами. Причём - время "единое", даже если у пользователей различное поясное время.
6 gusden
 
17.05.12
09:41
(4) После обмена поменял дату документов и всё прокатило.
(0)Но всё таки какой-то логике должно подчиняться последовательность видов документов. У меня эта последовательность строга одинаковая. Т.е. сначала выгружаются все документы вида1, потом вида2 и т.д. причём каждый раз одинаково.
7 mikecool
 
17.05.12
09:42
а записывать документы датой базы-источника не вариант?
8 Maxus43
 
17.05.12
09:42
понятие временная ось для документов разных видов не применима, в зависимости от ссылки в итоге строит ось внутри одной секунды, последовательность только для доков одного вида можно построить по момент времени
9 mikecool
 
17.05.12
09:43
(6) а не пофик для обмена в какой последовательности их грузить?
10 Maxus43
 
17.05.12
09:44
(8) + я не понял нафиг документ вобще проводится после обмена? он с движениями мигрировать должен уже проведённый. и время у дока приходит из базы источника, чо менял зачем?
11 DrShad
 
17.05.12
09:45
(9) +100500
12 gusden
 
17.05.12
10:04
(10)Документ в база источник записан например в 10-00 когда он попадает в головную базу, то он также записан и проведён временем 10-00, но текуще время например 9-15. И если я в головной базе буду вводить новый документ он должен стать после документа в из удалённой базы и должен видеть его движение. поэтому приходиться менять время документа из удалённой базы.
13 gusden
 
17.05.12
10:06
(7) геморно на мой взгляд. Все документы у меня вводятся оперативно. А уже потом при обменя я корректирую не стыковки по времени.
14 Maxus43
 
17.05.12
10:06
(12) разница в 45 минут на серверах? админы жгут. (5) + 1
Не с той проблемой боретесь
15 gusden
 
17.05.12
10:07
(14)один сервак в москве один в минске разные часовые пояса
16 Maxus43
 
17.05.12
10:09
(15) в базах прописаны разные часовые пояса в настройках? ЕМНИП это учитывается при обменах
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.