Автоматическое восстановление последовательности документов.


Обработка предназначена для автоматического восстановления последовательности (перепроведения) документов в нерабочее время.

Для каких конфигураций предназначена?
Обработка была написана для ПУБ. Сейчас эксплуатируется на ТиС и Бух.

Как изменить типовую конфигурацию?
1. Файл ПроведениеДокументов.ert вставить в конфигурацию в ветку Обработки, назвать «ПроведениеДокументов». Для Администратора назначить права — Использование.

2. Создать права Администратор (если их нет). Назначить их пользователям, которые будут получать отчет о выполненой работе.

3. Использовать старые или создать новые права (например BackUp). В правах обязательно должен быть доступ к следующим элементам (это рекомендация для ТиС, для других конфигураций может быть иной состав объектов):
— Задача.Монопольный режим
— Обработка.НастройкаКонстант.Использование
— Обработка.ПомощникНачалаРаботы.Использование
— Обработка.ТорговоеОборудование.Использование
— Обработка.Трассировка.Использование
— Обработка.ПроведениеДокументов.Использование

4. Создать пользователя под именем BackUp (или другим именем) c правами из п.3.

5. Запустить в режиме Предприятия под пользователем BackUp (или другим из п.4). Во всех появившихся окнах снять галочки «показывать при запуске».

6. (Опять только для ТиС) Запустить в режиме Предприятия под любым пользователем, у которого есть права на изменение справочника пользователи. Пользователю BackUp снять галочку «Запрашивать подтверждение при выходе из системы». Галочка «Отменить комментирование действий» должна быть сброшена. При необходимости, назначить полномочия, например разрешить продавать резерв или разрешить превышение кредита.Запустить обработку проведение документов. Задать необходимые параметры, записать их.

7. В глобальном модуле, в самом конце процедуры ПриНачалеРаботыСистемы добавить строки:

Если ПравоДоступа(«Использование»,»Обработка.ПроведениеДокументов»)=1 Тогда
ОткрытьФорму(«Обработка.ПроведениеДокументов», «Старт»);
КонецЕсли;

8. В Windows’е назначить запуск программы в режиме предприятия с ключами /m, /nBackUp и /d<Каталог ИБ> не раньше, чем окончание работы пользователей.

9. Зайти в программы под любым пользователем, у которого есть права на использование этой обработки. Открыть обработку и установить необходимые параметры для работы обработки и нажать кнопку «Установить».

51 Comments

  1. CheBurator

    Бяка! А где рассылка сообщения об успешности/неуспешности на мобилу/мылу админу?

    Логгирование пртокола сообщений ведется?

    Reply
  2. poppy

    > А где рассылка сообщения об успешности/неуспешности на мобилу/мылу админу?

    Что считать успешностью/неуспешностью? Перепроведение всех документов или полное восстановление последовательности?

    Рассмотренная обработка используется там, где ни первое, ни второе за одну ночь не выполняется.

    Если программа зависла во время работы, то админ и так узнает об этом по телефону от бухов. 😉

    > Логгирование пртокола сообщений ведется?

    Ведется. Смотри п.2 Специально подготовленные пиплы, при запуске программы, получают два отчета — один о проведении документов от границы последовательности, другой о сегодняшней (вчерашней) работе.

    Reply
  3. VV

    Че, что докулупался? Мне тож на фиг не нужен спам на телефон и мыло :)))

    К автору: лично я даю права админа ТОЛЬКО себе, ну могу еще и роботу (ночному юзверю), для получения отчета давать права админа — роскошь и вред! ИМХО.

    В целом интерфейс интуитивно понятен, на галки подсказки подробные повесь — неохота каждый раз в ридми лазить. «Установить» что делает? Настройки сохраняет? А если Настройка — сохранять автоматически, использовать при открытии?

    Запустил, сейчас молотит, хочу табличку с отчетом глянуть 🙂

    Reply
  4. CheBurator

    такс, ща тут крупную правку придется в сентябрь 2006 г. внести.. попробуем восстановиться данной прогой..

    — успешностью считать восстановление ГП (если запущено для восстановления ГП).

    — а чего это вдруг она должна зависнуть…? (вот штатное восстановление/перепроведение за 4 года ни разу не зависло)

    Reply
  5. CheBurator

    такс… имхо штатное восстановление гп происходит СУЩЕСТВЕННО БЫСТРЕЕ.

    Reply
  6. poppy

    > — а чего это вдруг она должна зависнуть…? (вот штатное восстановление/перепроведение за 4 года ни разу не зависло)

    За несколько лет эксплуатации было несколько зависаний. Причины:

    — для информационной базы на Скуль-сервере был назначен предел размера 1Гиг для файла транзакций. В будние дни проблем не было, но в выходные…

    — закончилось место на диске, где хранилась база скуль-сервера.

    Reply
  7. poppy

    > такс… имхо штатное восстановление гп происходит СУЩЕСТВЕННО БЫСТРЕЕ.

    Это не обсуждается. Штатные средства (менюоперациипроведение документов об этом ведем речь?) самые быстрые.

    Управлять скоростью проведения документов можно с помощью галочки «Не передвигать ТА». Известно, что проведение доукмента задним числом занимает значительно больше времени, чем при актуальных итогах.

    Другая сторона медали состоит в том, что по окончании работы необходимо передвинуть ТА на «старое» место. У меня были случаи, когда это происходило несколько часов.

    Другими словами. При установленной галочке «Не передвигать ТА» проведение документов происходит медленне, но завершение работы — почти мгновенно. При снятой галочке наооборот. Выбор за пользователем.

    Фишка моей технологии не в том, что она быстрее штатных средств. Она работает ежедневно (еженочно) не зависимо от желания пользователя. Она проводит документы — восстанавливает последовательность. Если есть ошибки в документе, т.е. последовательность не удалось восстановить, обработка продолжит перепроведение документов дальше. Не успела провести все документы сегодня, остальные будут проведены завтра.

    У меня есть клиенты, у которых проведение документов от ГП до ТА занимает до двух недель…

    Reply
  8. poppy

    > — успешностью считать восстановление ГП (если запущено для восстановления ГП).

    Такая успешность зависит от текущего состояния информационной базы, но не от иструмента, с помощью которого ты будешь перепроводить документы…

    Reply
  9. VV

    <<Не успела провести все документы сегодня, остальные будут проведены завтра.>> — как отслеживаешь? Я вчера тоже не дождался — отключил обработку.

    Reply
  10. poppy

    > <<Не успела провести все документы сегодня, остальные будут проведены завтра.>> — как отслеживаешь?

    Обработка отключается самостоятельно в назначенное время или по окончании документов. Если остановка произошла по-времени, то запоминается последний проведенный документ и при следующем запуске проведение начнется с него (при условии, что ГП не передвинули).

    Если установлена галочка «Каждый день начинать с начала», то проведение документов всегда начинается с ГП.

    Reply
  11. support

    Хорошая вещь! +1

    Reply
  12. poppy

    > «Установить» что делает? Настройки сохраняет? А если Настройка — сохранять

    > автоматически, использовать при открытии?

    Штатно настройки сохраняются только для текущего пользователя. Такой вариант не подойдет, потому что эти настройки нужны для другого пользователя, т.е. «робота».

    Кнопка «Установить» записывает настройки из рамок «Настройки» и «Расписание» в файл. При открытии эти настройки восстанавливаются.

    Поэтому, режим «использовать при открытии» в этой обработке не работает.

    Reply
  13. poppy

    Обработка обновлена.

    Ко всем элементам управления добавлено описание.

    Reply
  14. Вадимко

    Интересно, какой документ восстанавливается если обработка запускается в первый раз? 🙂

    глСообщениеТрассировки(глСообщенияТрассировки, «Окончание: » + ВосстановитьЗначение(«ПоследнийДокумент»).ПолучитьПозицию() + » (» + глПредставлениеДокумента(ВосстановитьЗначение(«ПоследнийДокумент»)) + «)», -1,,,,,,,,,, ВосстановитьЗначение(«ПоследнийДокумент»));

    {Обработка.ПроведениеДокументов.Форма.Модуль(239)}: Значение не представляет агрегатный объект (ПолучитьПозицию)

    Reply
  15. Вадимко

    Смотрю в камент на флажке «При след. запуске начать с начала»

    и вижу:

    «Установка этой галочки имеет смысл только при

    снятой галочке «Каждый день начинать с начала».»

    Где эта галочка?

    А если несколько последовательностей?

    Если ИмяПользователя() = «BackUp» Тогда

    Сообщить(пПоследовательность.Получить()

    Зачем тогда пользователя можно выбирать если он прописан в коде жестко?

    ЗЫ. Не цепляюсь, просто открыл по потребности

    Reply
  16. Вадимко

    И еще прошу пояснить… может не догнал… насколько имеет смысл запоминать последний документ и что-то проверять если мы восстанавливаем последовательность а система САМА устанавливает ее границу???

    Или тут задумывалось все же не для последовательности?

    Reply
  17. CheBurator

    У себя я еженочно восстанавливаю только Основную последовательность, так как прочие (Книги покупок/продаж) для ежедневной работы — неактуальны.

    Reply
  18. Вадимко

    Могу разработать специально для SQL 2000… надо? 🙂

    Reply
  19. poppy

    (14)

    Описанная ошибка возникает при первом запуске оработки, если ни один из документов не проводился.

    Reply
  20. poppy

    (15)

    п.1 В описании должно быть так:

    «Установка этой галочки имеет смысл только при

    снятой галочке «Каждый день начинать с ГП».»

    Reply
  21. poppy

    (15)

    п.2 Планировалось, что обработка может восстанавливать несколько последовательностей. Сначала она была заточена под одну и в процессе эксплуатации восстанавливать несколько последовательностей не потребовалось.

    Об этом же пишет и Че (17)

    Reply
  22. poppy

    (15)

    п.3 Этот код остался с времен, когда имя пользователя поменять было нельзя.

    Этот «косяк» будет исправлен.

    Reply
  23. poppy

    (16)

    Действительно, не только для последовательности.

    В том случае, если ГП «застряла» из-за какой-либо ошибки и за один сеанс работы не удается перепровести все оставшиеся документы, то при каждом сеансе будет перепроводится один и тоже состав документов, пока не будет исправлена ошибка.

    Последний проведенный документ — это псевдо-граница последовательности. Такое решение применяется когда для наведения порядка в одном регистре (остатки ТМЦ) требуется продолжительное время, но по другому регистру (взаиморасчеты) нужен порядок уже сейчас.

    Посмотри еще (7).

    Reply
  24. poppy

    Обработка обновлена.

    Исправлены ошибки, указанные в (14) и (15). Спасибо Вадимко за замечания.

    Reply
  25. murmanPV

    последовательность не восстановилась

    Reply
  26. CheBurator

    отрубить нафиг трассировку, все плювать в табло сообщений, табло капчить 1spy

    Reply
  27. CheBurator

    если перепроведение доков не успело дотямкать до финиша и было прервано по времени — я например, такую базу запустить в работу могу только на короткий срок… т.е. получается — использование такой обработки имеет смысл где прога используется как печмаш или я чего-то недотумкал…?

    Reply
  28. poppy

    (26)

    Как вариант, но в мокселе хранятся ссылки на документы с ошибками или предупреждениями. Их можно легко открыть.

    Reply
  29. CheBurator

    (28) тоже верно… только это актуально для первого (т.е. всего одного?) непроведенного /плохого документа — после его исправления — все заново… 😉

    Reply
  30. O-Planet

    По мне, так перепроведение в нерабочее время — крайне вредная операция. У меня перепроведение требует присутствия виновников. Когда встречается непроводящийся документ, она его открывает и ждет исправления. Потом медленно продолжает свое темное дело…

    Reply
  31. poppy

    (30)

    Не вреднее, чем менять в проводках 60.2 на 60.1 счет.

    Reply
  32. Abadonna

    Как раз что-то похожее понадобилось. Ставлю плюс не глядя, ибо в poppy не сомневаюсь

    Reply
  33. Abadonna

    Упс. Оказвается уже голосовал ;)))

    Reply
  34. vist

    У меня ошибки вылезли

    пПоследовательность = Последовательность.ПолучитьАтрибут(фСоставДокументов.ПолучитьЗначение(фСоставДокументов.ТекущаяСтрока()));

    {Обработка.ПроведениеДокументов.Форма.Модуль(84)}: Индекс не входит в границы списка значений.

    пПоследовательность = Последовательность.ПолучитьАтрибут(фСоставДокументов.ПолучитьЗначение(фСоставДокументов.ТекущаяСтрока()));

    {Обработка.ПроведениеДокументов.Форма.Модуль(84)}: Неверное имя атрибута

    Reply
  35. poppy

    (34)

    Ошибка исправлена. Спасибо за сообщение.

    Reply
  36. Altair777

    to poppy

    На SQL-базах юзали?

    У меня была проблема производительности после перехода на SQL.

    Решилась с помощью 1С++ методом ReconnectNative()

    Reply
  37. Abadonna

    (36)>Решилась с помощью 1С++ методом ReconnectNative()

    А поподробнее можно? Или сюда, или в личку

    Reply
  38. Altair777

    (37) > А поподробнее можно? Или сюда, или в личку

    в глобальном объявляется

    Перем глDataBase Экспорт;

    глDataBase = СоздатьОбъект(«ODBCDatabase»);

    глDataBase.Attach1C();

    в обработке «Восстановления последовательности» после каждого перепроведенного дока глDataBase.ReconnectNative();

    (там была фармфирма, доки от 100 до 8 тыс строк)

    этот метод отключает от sql-базы и снова подключает

    при этом в данном экземпляре программы не должно быть открытых журналов, справочников, доков

    Reply
  39. maff

    Спасибо, пригодилось!

    Reply
  40. alina-aud

    бух 7.70.507

    при запуске выдает: последовательности док-ов не обнаружены. Обработка работать не будет =(

    Reply
  41. poppy

    (41)

    Да, в типовой бухии нет последовательностей, поэтому обработка отказывается работать.

    У меня, в такую конфигурацию, добавлена последовательность, для перепроведения документов по 60 и 62 счетам. В этом случае обработка работает.

    Reply
  42. Abadonna

    (41,42) Вопрос тупого: зачем последовательность в бухгалтерии, если интервал актуальности итогов там составляет 24 часа?

    Reply
  43. tarroman

    (43) — основная задача последовательности — фиксация факта хронологического проведения документов в базе, и контроль нарушения хрнологии.

    В компоненте «Бухгалтерский учет» нет понятия ТА (это не интервал, это точка времени, на которую в системе хранятся итоги для регистров), но понятие расчета бух. итогов на момент времени есть.

    Как правило алгоритмы проведения документов в базах 7.7 используют итоги, рассчитанные на позицию проводимого документа. Как следствие — любой документ, проводимый/перепроводимый задним числом (временем) потенциально меняет информацию в итогах для других документов, проводимых после него. В бухгалтерии, например в ряде документов заложен алгоритм определения корр. счета (62.1 или 62.2, например) в зависимости от состояния итогов (например, при приходе денег от контрагента, важно знать — есть ли долг контрагета по ранее совершенным отгрузкам (фильтр — контрагент + договор) и деньги пойдут на его закрытие, или же долга нет — будет аванс).

    Reply
  44. tarroman

    Обработка полезная (особенно, когда нужно автоматизировать перепроведение доков по последовательности, а под рукой ничего нету 🙂 Пасиба.

    Reply
  45. logdog

    (42)

    У меня, в такую конфигурацию, добавлена последовательность, для перепроведения документов по 60 и 62 счетам. В этом случае обработка работает

    Как эта последовательность туда добавлена?

    Reply
  46. poppy

    (46) Штатными средствами. В конфигураторе.

    Reply
  47. nickkey

    если перепроведение документов не успело доперелопатить до финиша и было прервано по времени — ну тобиш, наступило утро бухи снова в базу, такую базу запустить в работу можно или потом еще хуже будет? А так вообще спасибо за такого робота а то щас восстанавливаю чтоб потом гимороя снова не было зацеплю и пускай каждый день молотит 🙂

    Reply
  48. 4ish

    Преамбула — столкнулся с такой проблемой — есть база ТиС, в которой каждую ночь запускается обработка подобная Вашей. Проблема в том, что если нехорошие пользователи залезут в документы на месяц назад и обработка начнет перепроводить документы, то часть хоз. проводок может и не сделаться.

    Пример — есть Возврат от покупателя, на его основании ввели РКО. В результате перепроведения возврата от покупателя не формируется проводка Дт 62.1 — Кт 90.1.2 (сторно реализации) — сумма-то нулевая.

    Теперь собственно вопрос — Ваша обработка решит ситуацию такого рода?

    Reply
  49. Rino

    есть ли такая-же на УТ 11?

    Reply
  50. corsar4ik

    Перепроведение документов штука тонкая и делать её надо вручную под чутким руководством ГЛАВНОГО… иначе быть беде.. Но спасибо за труды!

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *