|
v7: Слетают итоги регистров при обмене РИБ | ☑ | ||
---|---|---|---|---|
0
kasperiks
25.03.16
✎
08:58
|
Здравствуйте, необходима консультация по проблеме итогов регистров.
Используется УРИБ центр+1 точка. Конфигурация ТИС 7.7 Центр Клиент серверный вариант работы Почка Клиент файловый. Итоги слетают по регистрам ТОЛЬКО в центе. СУБД центра MSSQL 2005х64 используется в режиме пониженной совместимости 2000(80). Слетают итоги не при каждом обмене, понять закономерность не могу по какой причине и при каких условиях это происходит. Обмен может нормально работать неделю и при след обмене итоги слетят, может проработать 3 дня и слетят. |
|||
1
Mikeware
25.03.16
✎
09:00
|
что значит "слетают"?
ТА при этой ситуации не перемещается никуда? |
|||
2
HawkEye
25.03.16
✎
09:03
|
(0) задним числом что-нибудь проводят...
|
|||
3
Mikeware
25.03.16
✎
09:06
|
(2) и что?
|
|||
4
kasperiks
25.03.16
✎
09:07
|
Слетают это разница между
нач ост + приход - расход НЕ РАВНО кон ост. Сейчас приведу пример отчета Часто это замечают пользователи при формировании отчета по кассе. Например: нач ост в кассе 100000 приходов было на 50000 расходов на 30000 конечный остаток должен быть 120000, но это не так он отличается на неопределенную сумму. Если формировать отчет в разрезе документов, то на последний документ остатки будут 120000, а итоговые значения отчета неправильные |
|||
5
Смотрящий
25.03.16
✎
09:12
|
Итоги криво формируются
|
|||
6
Mikeware
25.03.16
✎
09:12
|
(4)
1)определи сумму расхождения. 2)найди документ на эту сумму. (как правило, это один документ. реже два. значительно реже несколько) 3) посмотри, что и когда происходило с этим документом (например, проводили во время обмена) |
|||
7
Mikeware
25.03.16
✎
09:13
|
Обмен - автомат?
|
|||
8
kasperiks
25.03.16
✎
09:14
|
6
даже если проводили что с того? При обмене должна происходить проверка блокировки документа если документ заблокирован для изменения. то транзакция не фиксируется. и тогда этот пакет будет загружен следующим обменом |
|||
9
kasperiks
25.03.16
✎
09:15
|
7 обмен автомат. период обмена 10 минут
|
|||
10
Mikeware
25.03.16
✎
09:20
|
(8) не документа, журнала (проверка блокировки документа сыграет только в том случае, если переписывается этот документ).
ну а "с того" то, что если одновременно пишется док по кассе из обмена, и док по кассе в текущей базе - конкуренция за ресурс (таблицу итогов регистра). Если это так - нужно чесать репу дальше |
|||
11
kasperiks
25.03.16
✎
09:41
|
Пользователи в каждой базе делают документы по своей фирме.
Конкуренция не должна происходить так как документы точки и центра будут различаться фирмой. А фирма это измерение регистра. по логике не должно возникать конкуренции |
|||
12
Mikeware
25.03.16
✎
09:44
|
(11) по логике - да.
Но по факту - возникает. поэтому (6) |
|||
13
kasperiks
25.03.16
✎
10:33
|
Проблема заключается в том что документооборот большой и таких документов много.
Примерно 800 документов в день. 300 центр и 500 почка. Поэтому при обмене при таком количестве документов пересечения будут по любому. Кто-нибудь встречался с подобной проблемой? |
|||
14
kasperiks
25.03.16
✎
11:28
|
ап
|
|||
15
vcv
25.03.16
✎
12:00
|
Сталкивался. Но проблема у меня возникает достаточно редко, что бы на неё забить. Если что, пересчитываю итоги обработкой с прямыми запросами.
|
|||
16
Mikeware
25.03.16
✎
12:22
|
(13) 800 документов -не так уж и много .
При 10-синутном обмене у тебя "в среднем" приходит порядка 10 документов. Это слишком мало для "пересечений". поэтому надо смотреть (6). (15) на сиквеле, старше 2000-го? /Вроде у меня появлялось после перхода на 2008, но точно не помню.. |
|||
17
varelchik
25.03.16
✎
12:56
|
У меня частенько было такое.
Как правило правда не в центре, а на ПФ. Выход нашел простой. Перехватчиком перехватую модульпроведения. Проверяю не запущен ли конфигуратор. Если да, то откат с сообщение для пользователя чтоб повременил. После таких танцев проблема исчезла. А так как правило раз или два в месяц в какой нить из 40-ка перефериек слетали итоги. Причем как правило после этого выдавало сообщение : Есть более ранние проведенные документы. Типа ТА откатывалось назад. Но документ оставался проведенным (с зеленой галкой). |
|||
18
varelchik
25.03.16
✎
12:57
|
После этих танцев уже года 3 проблем не возникало.
|
|||
19
kasperiks
25.03.16
✎
15:39
|
17 дельное предложение. спасибо проверю)
|
|||
20
Mikeware
25.03.16
✎
16:05
|
(17) а время засинхрить админов не заставлял? :-)
вкупе с запретом возможности проводить вперед? на такое нарывался только когда "проблемы перевода времени" были, и админ косякнул с несколькими машинами... а еще - проверялка итогов и прямой пересчет по сбойным изменениям - в планировщике на ежедневно стояли. |
|||
21
Mikeware
25.03.16
✎
16:06
|
+(20) проверялка итогов валяется на нимфостарте, а пересчет по сбойному набору - у меня не осталось. но там пишется легко из любого имеющегося прямого пересчета...
|
|||
22
kasperiks
26.03.16
✎
05:44
|
21 обработка с инфостата есть дял пересчета итогов.
время засинхронили. это первое на что грешили |
|||
23
kasperiks
26.03.16
✎
06:11
|
21+ Каким образом можно проверить запущенное приложение конфигуратор?
методы конфигурации есть? или искать наличие фалика блокировки? |
|||
24
Это_mike
26.03.16
✎
07:12
|
(23) Файлик, или admin.dll
|
|||
25
kasperiks
26.03.16
✎
07:27
|
24 где файл блокировки найти можно и как называется?
|
|||
26
Mikeware
26.03.16
✎
08:29
|
(25) 1Сv7.lck в каталоге пользователей и в корне. подробнее расскадывали hogik и МуМу, но это было так давно... ищите, интернет помнит все...
|
|||
27
kasperiks
26.03.16
✎
08:50
|
(26) Спасибо вам большое)
|
|||
28
kasperiks
26.03.16
✎
09:03
|
Проверил запуск конфигуратора, файл lck не создаетя в папке пользователя.
А тот что в корне висит если хотя бы один пользователь в базе. Может еще какой файл есть? |
|||
29
Смотрящий
26.03.16
✎
09:06
|
На локальной машине где ПФ запрети чтение средствами винды файла config.dll - конфигуратор никогда не запустится.
|
|||
30
Смотрящий
26.03.16
✎
09:06
|
А точнее юзеру запрети, а систему разрещи; и стартуй обмен от система
|
|||
31
aspirator23
26.03.16
✎
10:41
|
Посмотри миграцию последовательностей
|
|||
32
kasperiks
26.03.16
✎
16:14
|
(30) не понял при чем тут обмен от системной учетной записи. (31) Для чего посмотреть миграцию последовательностей?
|
|||
33
aspirator23
26.03.16
✎
16:31
|
У тебя она мигрирует?
|
|||
34
kasperiks
26.03.16
✎
19:43
|
(33) да. база распределенная. центр+1 точка
|
|||
35
aspirator23
26.03.16
✎
21:14
|
(34) Вот поэтому и спрашивал. Отключи.
|
|||
36
vcv
27.03.16
✎
08:27
|
(35) Не факт, что поможет. У меня последовательность не мигрирует, но нарушение итогов бывает.
|
|||
37
Это_mike
27.03.16
✎
15:58
|
(35) керню городишь. Миграция последовательности к итогам никаким боком не относится.
|
|||
38
kasperiks
28.03.16
✎
07:17
|
Кто может подсказать как именно проверить запущенное приложение конфигуратора?
файлик блокировки 1Сv7.lck создается только при запуске 1с предприятия, но не конфигуратора. |
|||
39
Mikeware
28.03.16
✎
07:53
|
(38) файлмрном или процесс эксплорером посмотри. Только именно при запуске пакетного задания на обмен...
|
|||
40
kasperiks
28.03.16
✎
07:59
|
(39) Мне нужно программным путем определить идет ли обмен или нет.
Вот мне и нужно узнать активен ли конфигуратор. Ну или определить активен ли пользователь с именем "obmen" это тоже будет сигнализировать работу конфигуратора |
|||
41
Mikeware
28.03.16
✎
08:23
|
||||
42
varelchik
28.03.16
✎
08:24
|
Функция Событие_ОбработкаПроведения(Конт,Парам) Экспорт
Если ПроведениеМОД(Конт)=1 Тогда Возврат 0; КонецЕсли; _КонтФормы=Конт; ЕстьТабличнаяЧасть=Метаданные.Документ(Конт.Вид()).РеквизитТабличнойЧасти(); Если ЕстьТабличнаяЧасть>0 Тогда Если Конт.КоличествоСтрок()=0 Тогда Сообщить("Не заполнена табличная часть!","!"); Возврат 0; КонецЕсли; КонецЕсли; стат=СпПосещения.Принадлежит(_КонтФормы.Вид()); Если стат=1 Тогда Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения",Парам); КонецЕсли; Если Конт.Вид()="УстановкаСкидок" Тогда Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения"); КонецЕсли; Если Конт.ДатаДок>ТекущаяДата() Тогда Сообщить("Запрещено проводить документы в будующем периоде!","!"); Возврат 0; КонецЕсли; Если глДатаЗапрета>=Конт.ДатаДок Тогда Сообщить("Запрещено проводить документы ДО : "+Строка(глДатаЗапрета),"!"); Возврат 0; КонецЕсли; Если Метаданные.Документ(Конт.Вид()).АвтоудалениеДвижений=0 Тогда Конт.ОчиститьДвижения(); КонецЕсли; //Сообщить(Конт.Форма); //Если Конт.Вид()="ЗаявкаРемонт" Тогда // Рег=СоздатьОбъект("Регистр.ВзаиморасчетыПокупателей"); // Если Рег.ВыбратьДвиженияДокумента(Конт.ТекущийДокумент())=1 Тогда // Конт.ОчиститьДвижения(); // КонецЕсли; //КонецЕсли; Если (Интерактивно=1) и (ТекущаяИБЦентральная()=0) Тогда //рФорма=СоздатьОбъект("РасширениеФормы"); ////рФорма.УстановитьФорму(конт); //рФорма.УстановитьФорму(Конт.Форма); //Если рФорма.ТипОбъекта()="Документ" Тогда // это явно работа пользователя лИТЗ=глСервис.ПолучитьСписокАктивныхПользователей(2,); Если лИТЗ.КоличествоСтрок()>1 Тогда ИТЗ=СоздатьОбъект("ИндексированнаяТаблица"); ИТЗ.Загрузить(лИТЗ); ИТЗ.ДобавитьИндекс("инд","Режим"); Если ИТЗ.НайтиСтроку("инд",2)>0 Тогда Сообщить("Идет обмен! |Попробуйте позже."); Конт.НеПроводитьДокумент(); //Ответ=Вопрос("Идет обмен! //|Повторить попытку?","Да+Нет",50); //Если Ответ="Да" Тогда // Возврат Событие_ОбработкаПроведения(Конт,Парам); //КонецЕсли; Возврат 0; КонецЕсли; КонецЕсли; //Если Конт.Вид()="Перемещение" Тогда // Текст="Требуется утверждение //|бренд менеджера"; // Предупреждение(Текст,20); // Конт.НеПроводитьДокумент(); // Возврат 0; //КонецЕсли; Конт.ДатаИзмененияДок = ТекущаяДата(); Конт.ТипУчета = 1; Конт.ФинУчет = 1; Если Конт.Проведен()=0 Тогда Конт.Автор=глПользователь; КонецЕсли; РегистрацияДоставки(Конт); Если глДокументыСоСтатусами.Принадлежит(Конт.Вид())=1 Тогда РаботаСоСтатусами(Конт); КонецЕсли; //КонецЕсли; КонецЕсли; Возврат _Перехватчик.ВыполнитьОригинальноеСобытиеГК(Конт,"ОбработкаПроведения",Парам); КонецФункции // СобытиеГМ_ПриОбработкаПроведения |
|||
43
varelchik
28.03.16
✎
08:24
|
Делов то?
|
|||
44
Mikeware
28.03.16
✎
08:28
|
(43) глСервис - Это у тебя что? У ТС его нету :-)) иначе б он не спрашивал
|
|||
45
varelchik
28.03.16
✎
08:39
|
глСервис=СоздатьОбъект("Сервис");
|
|||
46
kasperiks
28.03.16
✎
08:40
|
(43) Спасибо за предоставленный код.
Я уже нашел внешнюю компоненту Admin1C.dll которая возвращаем мне список активных подключений и режим подключения к БД. вот с ним сейчас и работаю. Как все сделаю напишу по результатам помогли или нет. |
|||
47
Mikeware
28.03.16
✎
08:42
|
(45) "Сервис" - чей? Не формексовский явно :-)
|
|||
48
varelchik
28.03.16
✎
08:48
|
(47)его самого.
|
|||
49
varelchik
28.03.16
✎
08:49
|
(46)Зачем?
Для этого есть FormEx. |
|||
50
ADirks
28.03.16
✎
08:55
|
(48) хм... а версия какая?
в 2.0.5.93 такого нет |
|||
51
Mikeware
28.03.16
✎
08:56
|
(49) Прикольно. в документации нет... а в реальности есть...
|
|||
52
Mikeware
28.03.16
✎
08:57
|
(50) 2.0.5.108 - работает
|
|||
53
ADirks
28.03.16
✎
09:19
|
как интересно
ещё там есть парочка событий OnDrop и OnURLDrop интересный метод DecodeToUTF8 может и ещё чего интересного |
|||
54
varelchik
28.03.16
✎
09:42
|
(53)Я чесно говоря так глубоко не рыл.
Мне фатило работы с пользователями. |
|||
55
Mikeware
28.03.16
✎
09:50
|
(53) Ксатати, у меня OnDrop и OnURLDrop не срабатывают. ЧЯНТД?
|
|||
56
varelchik
28.03.16
✎
10:07
|
Попробуй
Информатора. Что он скажет про эти методы. |
|||
57
Mikeware
28.03.16
✎
10:09
|
(56) эт чо?
|
|||
58
Mikeware
28.03.16
✎
10:10
|
что это за меттоды - я и так знаю (на форуме описано). вопрос в том, почему не работают :-)
|
|||
59
varelchik
28.03.16
✎
10:18
|
(58) Класс Информатор из 1С++.
|
|||
60
varelchik
28.03.16
✎
10:19
|
Класс "Информатор" / "Informer".
Удобный сервисный класс, показывающий различную информацию. Версия: релиз 2.5 и выше. Методы ПолучитьТаблицуМетодов / GetMethodsTable Получает таблицу методов для переданного объекта. ПолучитьТаблицуСвойств / GetPropsTable Получает таблицу свойств для переданного объекта. МетодСуществует / MethodExists Проверяет существование указанного метода у переданного объекта. СвойствоСуществует / PropExists Проверяет существование указанного свойства у переданного объекта. ЯвляетсяОбъектом / TheObjectIs Если первым параметром передан объект, проверяет, является ли переданный объект объектом указанного во втором параметре типа или наследует от него. Если первым параметром передана строка с наименованием типа, проверяет, является ли переданный тип указанным во втором параметре типом или наследует от него. ЯвляетсяФункцией / IsFunction Проверяет, является ли указанный метод функцией. КоманднаяСтрока / CommandLine Возвращает командную строку запуска 1С-Предприятия. ПутьПриложения1С / GetAppPath Возвращает путь к исполняемому файлу 1С-Предприятия. ТипЗначенияСтрВнутр / GetInternalTypeName Возвращает внутренний тип объекта. Например, для класса КОП будет возвращено "CComponentClass". ПолучитьВремяПростояСистемы / GetIdleTimeOfSystem Возвращает время простоя сеанса работы пользователя в Windows. Используется соответствующие системные функции из WinAPI. ПолучитьТаблицуЗагруженныхВК / GetAddInDllTable Получает таблицу свойств с информацией по всем загруженным ВК. Порядок следования файлов в таблице совпадает с порядком загрузки ВК. ПолучитьТекстТекущегоМодуля / GetCurrentModuleText Получает текст текущего модуля, в котором вызван данный метод. Работает как для модулей классов 1С++, так и для любых штатных модулей 1С ПолучитьТекстМодуля / GetModuleText Получает текст модуля для указанного контекста. |
|||
61
Mikeware
28.03.16
✎
10:21
|
(60) спасибо. "о сколько нам открытий чудных..."©
клюшки уже забывать пора, а в них все что-то новое находится... :-) |
|||
62
varelchik
28.03.16
✎
10:51
|
(61)Ну до 2032 года пока будет жить.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |