<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Добавил видео обзор подсистемы согласования
Проверены следующие конфигурации:
— Бухгалтерия предприятия 3.0 релиз 3.0.43.239
— Консолидация ред. 2.1 релиз 2.1.3.1
— Комплексная автоматизация 2.0 релиз 2.0.3.169
+ за хорошее документирование и видеоряд.
Второе видео по настройке часть 2. При согласовании на 2:12 согласующий не видит Объект БД который он согласует (Объект не найден). Либо либо неудачный пример и что-то не так с правами Бахшиева, либо что-
(3) kraynev-navi,
Добрый день.
Да, Вы, правы.
Просто у Бахшиева не были указаны права на документ «Заявка на расход денежных средств».
Будет время исправлю видео.
Спасибо, что сообщили.
>запрет использования элемента справочника пока он не согласован
особо ценно чтобы номенклатуру и поставщиков не плодили по 100500 шт за день…
(5) dddxddd,
Добрый день.
Постараюсь в ближайшее время добавить такую возможность.
(5)
Обновление от 25.09.2016
Выпущена версия «1.0.0.009» изменения:
Добрый день
Изменена стоимость подсистемы с 3 SM до 1 SM.
Хорошего настроения и удачного дня!
Обновление от 15.11.2016
Проект выложен на GitHub
Добрый день!
Поставил подсистему на УНФ 1.6.5.28. Возникло несколько вопросов:
1. Кроме раздела «Согласование» появился еще и раздел «Прочее (не переносить)». В нем на панели навигации есть три пункта — «Договоры контрагентов», «Заявка на оплату» и «Контрагенты». Подозреваю, что надо было более тонко настраивать параметры слияния конфигураций, хотя все делал строго по видеоинструкции.
2. Сломалась форма карточки пользователя в соответствующем справочнике. Теперь там нет параметров аутентификации в информационной базе. На скрине слева сломанная форма, справа — рабочая (иконку согласования поменял я сам).
3. В условиях согласования для справочников (если конкретно, то «Контрагенты») очень ограничен выбор реквизитов для контроля. В частности, нет доступа к дополнительным реквизитам справочника.
Конечно, вопрос можно решить с помощью произвольного условия, но это уже другой путь.
4. Ну и самое главное — так и не разобрался в настройках предмета согласования в части действий. Если делать все по инструкции, то после согласования я не могу провести документ, так как он заблокирован.
Для возможности его проведения я должен предусмотреть действие «Разблокировать объект БД» «При завершении если согласовано». При этом документ становится доступным для произвольного редактирования и повторного проведения без всякого дополнительного согласования. Как все-таки сделать так, чтобы после согласования документ возможно было провести, но нельзя редактировать, а редактирование становилось бы возможным только после отмены действующего согласования и требовало бы нового согласования перед повторным проведением.
(10) brylig,
Добрый день, Илья.
По поводу первых двух пунктов:
2. Сломалась форма карточки пользователя в соответствующем справочнике. Теперь там нет параметров аутентификации в информационной базе. На скрине слева сломанная форма, справа — рабочая (иконку согласования поменял я сам).
Это признаки того, что подсистема перенесена не верно, т.е. были перенесены еще служебные объекты:
http://f6.s.qip.ru/m9euvvHg.png
После того как в конфигурации сделали «Конфигурация — Сравнить объединить с конфигурации из файла» выбрали файл CF
Необходимо снять галочку со свойств, остальные галки не трогать.
http://f3.s.qip.ru/m9euvvHi.png
Необходимо сделать заново перенос подсистемы в вашу конфигурацию.
По остальным пунктам записал, как появится свободное время, обработаю их и отпишусь Вам.
Спасибо.
Добрый день, Илья.
(10)
В данный момент не могу обещать, что будет реализована такая возможность, потому что в различных конфигурациях дополнительные реквизиты и свойства реализованы по разному.
Сейчас, как, Вы, правильно заметили, это можно реализовать только через «Произвольное условие».
Для возможности его проведения я должен предусмотреть действие «Разблокировать объект БД» «При завершении если согласовано». При этом документ становится доступным для произвольного редактирования и повторного проведения без всякого дополнительного согласования. Как все-таки сделать так, чтобы после согласования документ возможно было провести, но нельзя редактировать, а редактирование становилось бы возможным только после отмены действующего согласования и требовало бы нового согласования перед повторным проведением.
Да, Вы, правы такая возможность полезна, записал в доработки, как будет реализована напишу.
Спасибо. Буду ждать.
Доброе время суток!
Встроил подсистему настроил для справочника Номенклатура.
В результате вся номенклатура в системе приняла статус «Не Согласована» и соответственно недоступна для использования в документах.
Попробовал изменить статус номенклатуры в закладке «Статусы согласований», по одной позиции меняется, групповая обработка не работает.
Справочник «Номенклатура» содержит около 80000 позиций, и изменение статуса по одной позиции очень трудоемко. Неплохо было бы или при первичном заполнении данных выставить статус «Согласовано», либо дать возможность группового изменения реквизита.
(15) Добрый вечер, Юрий.
https://github.com/BlizD/BPS/issues/3
Добавил в задачи
Спасибо.
Добрый день. А для КА 2.0.3.67 подойдет данная система?
(18)Добрый день, Павел.
Тестировал для
— Комплексная автоматизация 2.0 релиз 2.0.3.169
думаю для КА 2.0.3.67 тоже подойдет.
Выпуск релиза 1.0.0.010
В обработке «Статусы согласований»:
— реализована возможность установить статус для выделенных объектов.
(15) Виктор, теперь можно выделить список элементов, и нажать «Установить статус» для выделенных объектов будет установлен выбранный статус.
А почему так происходит?
(21) Максим,
Это сообщение говорит о том что динамический список почему то получил более 1 записи для документа заявка на расход дс.
Подскажите в какой момент выдается ошибка?
Есть ли возможность скинуть дт с примером ошибки?
Здравствуйте!
Розница 2.2. также требует внесения изменений в общий модуль «БизнесПроцессыИЗадачиСобытия», как и УТ 11
(23)
Розница 2.2. также требует внесения изменений в общий модуль «БизнесПроцессыИЗадачиСобытия», как и УТ 11
Добрый день, Баир.
Спасибо, сейчас добавлю в описание.
Можете указать точную версию Розницы 2.2 ?
(24) смотрел в версии 2.2.4.33
Добрый день! Для Бухгалтерии 2.0 пойдет?
(26)
Добрый день, Ирина.
Да, подойдет.
Обновление от 27.04.2017
Выпуск релиза 1.0.0.012
Изменения
Исправлена работа в клиент серверном варианте работы;
Проверены следующие конфигурации:
— Бухгалтерия строительной организации релиз 2.0.66.23
Обновление от 01.06.2017
Выпуск релиза 1.0.0.013
Изменения
Добавлен реквизит «Не увеличивать номер очереди» в справочник «Предметы согласований». Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;
Пример:
День добрый!
Уточните, пожалуйста, есть ли возможность, или такая возможность планируется, для запроса уточнения от участника согласования к инициатору?
И второй момент, можно ли будет настроить группы согласующих с возможностью параллельного и последовательного согласования документа?
Например, группа 1 имеет признак «Параллельное согласование», следовательно всем пользователям данной группы будет одновременная рассылка на э. я., что необходимо принять участие в согласовании документа.
Или так:
Группа 2 имеет признак «Последовательное согласование», т. е. уведомление о необходимости принятия участия в процессе согласования документа придет на э. я. сначала только первому пользователю группы, и только после его согласования второму и т. д.
Добрый день.
Планируется ли проведение согласованного документа, так как несогласованный документ провести нельзя.
А так если документ получил статус «Утвержден» он бы автоматически провелся.
Спасибо.
(30)
Добрый день, Самвел.
Прошу прощения видимо пропустил это сообщение.
Уточните, пожалуйста, есть ли возможность, или такая возможность планируется, для запроса уточнения от участника согласования к инициатору?
И второй момент, можно ли будет настроить группы согласующих с возможностью параллельного и последовательного согласования документа?
Например, группа 1 имеет признак «Параллельное согласование», следовательно всем пользователям данной группы будет одновременная рассылка на э. я., что необходимо принять участие в согласовании документа.
Или так:
Группа 2 имеет признак «Последовательное согласование», т. е. уведомление о необходимости принятия участия в процессе согласования документа придет на э. я. сначала только первому пользователю группы, и только после его согласования второму и т. д.
Возможно изменения сделанные в 13 релизе как раз то, что Вам нужно.
Изменения
Добавлен реквизит «Не увеличивать номер очереди» в справочник «Предметы согласований». Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;
Что касается
Пока такая возможность не планируется.
Пожелание записал.
(31)
Планируется ли проведение согласованного документа, так как несогласованный документ провести нельзя.
А так если документ получил статус «Утвержден» он бы автоматически провелся.
Спасибо.
Добрый день, Сергей.
Автоматического проведения документа при установке статуса «Утвержден» такое не планируется делать.
Пожелание записал, если что-то измениться по этому поводу сообщу.
Cпасибо.
Было бы неплохо иметь возможность после «утверждения» автоматически создавать «на основании» другого документа
например — «Заявка на расходование средств» —> «Платежное поручение исходящее»
Заранее спасибо.
Добрый день.
Есть новые наработки?
(36)
Добрый день, Сергей.
Нет пока новых доработок нет.
Антон, добрый день! Скажите можно ли сделать чтобы инициатор получал уведомление не при завершение, а всегда?
(38)
Добрый день, Ирина.
Нет, такой настройки сейчас нет.
Жаль, спасибо!
Доброго дня! кажите а можно отправлять сообщение с вложением? И планируется ли это доработать если нет? Спасибо.
(41)
Добрый день, Ирина.
Такой возможности нет.
Само прикрепления вложения к сообщению это небольшая проблема.
Проблема как это реализовать универсально, т.к. формирование вложений (печатных форм, файлов, отчетов) в каждой конфигурации реализовано по своему.
Поэтому, обещать ничего не могу.
В любом случае задачу записал.
(37)
Добрый день.
Доработки проведения документа после согласования не появилось?
(43)
Добрый день.
Нет, но не появилось.
Добрый день, спасибо Вам за подсистему.
Вопрос — а можно согласовывать не последовательно а сразу всем? например уведомления рассылаются сразу 3 пользователям и они жмут согласовать независимо друг от друга.
(45)
Вопрос — а можно согласовывать не последовательно а сразу всем? например уведомления рассылаются сразу 3 пользователям и они жмут согласовать независимо друг от друга.
Добрый день, спасибо за отзыв.
Да, это возможно, для этого добавлен реквизит «Не увеличивать номер очереди» (в релизе 1.0.0.013) в справочник «Предметы согласований».
Пример gif
Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;
Добрый день!
Возможно ли настроить такой сценарий:
1. Вводится новый контрагент, для его использования требуется согласование.
2. У согласованного контрагента меняются реквизиты => Контрагент разблокируется для редактирования и требуется пересогласование. В рецензии на пересогласование в идеале показать, какие реквизиты поменялись.
(47)
Возможно ли настроить такой сценарий:
1. Вводится новый контрагент, для его использования требуется согласование.
2. У согласованного контрагента меняются реквизиты => Контрагент разблокируется для редактирования и требуется пересогласование. В рецензии на пересогласование в идеале показать, какие реквизиты поменялись.
Добрый день.
В текущей версии, такое реализовать нельзя.
В целом если говорить о таком сценарии, то его достаточно сложно реализовать универсально для всех баз, куда может быть встроена конфигурация.
Поэтому рекомендую, Вам, самостоятельно доработать такой механизм конкретно в Вашей конфигурации.
В любом случае пожелание записал, если что то изменится, обязательно сообщу.
Добрый день.
Подскажите как настроить подсистему для согласования справочников?
С документами разобрались. Интересует согласование «Контрагентов», «Номенклатура», «Статьи затрат». У каждого справочника свой согласующий.
Спасибо.
(49)
Добрый день, Сергей.
По идее настройка согласования справочника, такая же как и для документов.
А что произойдет если утвержденный элемент справочника отредактируют? Потребуется повторное согласование?
(51)
Сергей,
в текущей версии, ничего не произойдет.
Сейчас, можно настроить, так чтобы нельзя использовать элемент справочника,
пока он не согласован.
Спасибо.
А в последующих релизах планируются доработки позволяющие контролировать изменения в справочниках?
(53)
Сергей,
на текущий момент, в данном проекте быстро исправляю, только если найдут ошибки.
Пожелание записал, если будет реализовано, сразу сообщу.
Добрый день!
На Комплексная автоматизация 1.1 эту подсистему прицепить можно?
(55)
Добрый день, Максим.
Да, не должно быть проблем.
В комплексной насколько помню очень многое взято из упп. А в упп встраивается.
Добрый день! Подскажите, пожалуйста. А где можно найти все задачи, которые создает подсистема при согласовании? Например, чтобы проанализировать время визирования документов согласующими лицами? И можно ли в «Мои задачи-Задачи по согласованию» добавить поля из предмета согласования, например, приоритет или контрагента? Заранее спасибо!
Обновление от 08.12.2017
Выпуск релиза 1.0.0.013
Исправление ошибки:
My https://github.com/BlizD/BPS/issues/9
* Ложное срабатывание проверки возможности использования, если реквизит не заполнен #9
(57)
Добрый день,
>»А где можно найти все задачи, которые создает подсистема при согласовании? Например, чтобы проанализировать время визирования документов согласующими лицами?»
через интерфейс открыть все задачи не получится.
Единственное могу предложить использовать КонсольЗапросов и в котором смотреть такой запрос:
Показать
по поводу
> И можно ли в «Мои задачи-Задачи по согласованию» добавить поля из предмета согласования, например, приоритет или контрагента? Заранее спасибо!
Интерактивно это не получится сделать. Необходимо дописывать самостоятельно.
«Запретить использование объекта БД пока он не согласован» — не понимаю, что подразумевается по использованием?
Оффтоп.
На картинке ошибка. Правильно в данном случае: «Что бы еще согласовать?».
вы не пытаетесь случаем повторить функционал 1С:Документооборот?
(60)
Добрый день, Андрей.
Под использованием понимается следующее: проверка если данный объект указан в другом объекте.
Например:
«Договор №15» нельзя указать в «Реализации товаров» или где то еще, сработает проверка перед записью.
(61)
Спасибо, поправил, по идее скоро обновится.
(62)
Намеренно, точно не пытался.
Если в каких то моментах он схож тогда это даже хорошо.
Основное преимущество данной конфигурации, возможность встраивания в любую другую конфигурацию.
(63) Добрый день!
Для каких объектов применяется подписка на события перед записью?
(66)
Андрей,
для всех справочников и для всех документов.
(65)
Если в каких то моментах он схож тогда это даже хорошо.
Основное преимущество данной конфигурации, возможность встраивания в любую другую конфигурацию.
это преимущество давным давно имеется в 1С:ДО, а конкретнее в Библиотеке интеграции с Документооборотом
(67)я правильно понимаю, что таким образом несогласованные объекты могут быть использованы, например в независимых регистрах сведений или задействованы в типовых обменах?
(69)
Андрей, да, правильно.
(70) спасибо.
(68)
Возможно ошибаюсь, поправьте если не так.
Мне кажется чтобы использовать библиотеку интеграции с документооборотом,
в целевой конфигурации должна использоваться достаточно свежая БСП (библиотека стандартных подсистем).
Или такой зависимости нет?
(72)
Мне кажется чтобы использовать библиотеку интеграции с документооборотом,
в целевой конфигурации должна использоваться достаточно свежая БСП (библиотека стандартных подсистем).
Или такой зависимости нет?
требутся БСП 2.1.2
(73)
В этом случае каждый сам решает, что ему проще:
Вариант №1:
* внедрить в свою конфигурацию БСП нужной версии;
* далее внедрить использование «Библиотеки интеграции с Документооборотом»;
если не куплена 1с: ДО тогда добавляем еще:
* купить 1с: ДО;
* внедрить 1с: ДО;
Вариант №2
* внедрить эту подсистему.
Если задача состоит только в согласовании, то с моей точки зрения
у варианта №2 есть преимущества:
* более безопасный;
* быстрее выполнимый;
* значительно менее затратный по деньгам;
* конечный результат будет достигнут с высокой вероятностью.
(74) если вы имеете один ларёк, продающий конфеты у метро то согласен с вами. если — сотню ларьков, то наверно задумаетесь брать решение вендора, который десяток лет на рынке или нетленку непонятного поставщика с неизвестной поддержкой и не прогнозируемым временем решения всплывших багов
(75)
Опять же каждый сам для себя решает, что ему важнее.
Могу лишь только добавить, что «нетленка» выложена на Github и любой можешь доработать ее и поправит всплывший баг.
Далее исправления (через Pull Request) попадут в основную ветку продукта.
Как это сделать писал в
https://infostart.ru/public/691382/
* «Github и 1С. Пошаговая инструкция на конкретном примере»
Автор, подскажи, А как можно во время согласования — т.е смены статусов согласования, чтобы у моего документа, который согласуется, изменялся его реквизит «СтатусСогласования»? Система не дает изменять документ пока он не «Утвердится». В какую сторону смотреть, подскажи.
(77)
Добрый день, Евгений.
Правильно понимаю, что у Вас, в Вашем документе есть реквизит «СтатусСогласования» и Вы хотите его изменить вручную?
При этом у документа стоит запрет использования пока объект не согласован?
P.S. меня зовут Антон, а то как то Автор, совсем абстрактно.
(78)
Правильно понимаю, что у Вас, в Вашем документе есть реквизит «СтатусСогласования» и Вы хотите его изменить вручную?
При этом у документа стоит запрет использования пока объект не согласован?
P.S. меня зовут Антон, а то как то Автор, совсем абстрактно.
Да, Антон, все верно. Что именно влияет на блокировку объектовБД?
Добрый день!
А есть механизм «понимания» о необходимости согласования в целом по объекту?
Т.е. какие то обработчики со стороны подсистемы перед записью/проведения документа, в которых, собственно выполнять код по проверки необходимости согласования — например, в этом коде, относительно документа, скажем, Заказа покупателя — делать проверку на рентабельность сделки в целом и по отдельным номенклатурным позициям в частности (код проверки конечно же есть), и если проверка не проходит (рентабельность меньше какого-то установленного порога) — запускать собственно процесс согласования с нужной маршрутизацией?
Второй момент — описательный состав согласования (что согласовывать и почему оно пришло на согласование) — как то редактируется? Или мне необходимо, все же, дорабатывать (как я вижу) форму согласующего лица, относительно примера: отображать те номенклатурные позиции, которые не рентабельны в этой сделке. Если кратко — как внедрить свою форму согласующего?
(80)
Добрый день.
А есть механизм «понимания» о необходимости согласования в целом по объекту?
Т.е. какие то обработчики со стороны подсистемы перед записью/проведения документа, в которых, собственно выполнять код по проверки необходимости согласования — например, в этом коде, относительно документа, скажем, Заказа покупателя — делать проверку на рентабельность сделки в целом и по отдельным номенклатурным позициям в частности (код проверки конечно же есть), и если проверка не проходит (рентабельность меньше какого-то установленного порога) — запускать собственно процесс согласования с нужной маршрутизацией?
В данный момент такого механизма нет. Но также как и Вы считаю, что он был бы полезен.
https://github.com/BlizD/BPS/issues/11
Добавил задачу
Теперь если рассматривать текущие возможности подсистемы, то это реализовать возможно.
Необходимо в условиях прописать Ваш код (см. вложение).
В этом случае если ни одно из условий не выполнится, будет считаться, что согласование не требуется
и статус будет сразу «Утвержден» (когда нажмут на кнопку «Отправить на согласование»)
Если, Вы, про пояснение которое приходит к рецензенту.
То такая доработка планировалась, но не реализована.
Добавил задачу:https://github.com/BlizD/BPS/issues/12
По поводу реализации данных доработок, не могу обещать когда сделаю, т.к. свободного времени нету.
Если будут желающие доработать это, то им помогу.
(79)
Евгений,
на блокировку объекта БД влияет два флага в элементе справочника «Предметы согласования»:
* Запретить проведение объекта БД пока он не согласован
* Запретить использование объекта БД пока он не согласован
Если они оба сняты, тогда блокировка не выполняется.
(81)Понятно. Спасибо за ответ.
Просто в свое время тоже реализовывал (не совсем удачный, сейчас я бы сделал по другому) подобный функционал, и там предусматривал такой подход:
Есть отдельный справочник «Настройки согласования», в нем можно подобрать объект метаданных (документ, справочник) который подлежит согласованию, установить его статус — Активный, т.е. согласования по нему включены.
Далее при проведении такого объекта, делается проверка на участие его в схеме согласования (по справочнику), далее выполняется Код, который можно написать в режиме предприятия (входит в состав справочника Настройка согласования), он называется «Код необходимости старта процесса согласования» — который должен вернуть Структуру с полем «Результат» булева типа: Истина/Ложь. В контексте кода есть переменная ОбъектСогласованияСсылка.
Далее в этом справочнике есть ТЧ «Этапы согласования», в каждой строке ТЧ — Наименование этапа и Роль исполнителя по этапу. Для каждой строчки (этапа согласования) — есть также свой «Код условия перехода в Этап согласования» — который должен вернуть Истину, если необходимо стартовать данный этап согласования рецензентом.
Например, в первом этапе можно всегда возвращать Истину, фактически это тоже что и «Код необходимости старта согласования» в целом. Далее, выполняется код второго этапа — например в нем можно проверить рентабельность сделки если с ней всё ок — идем дальше по этапам (если нет — то стартует задача по Роли на этапе), далее, например в 3-4 этапах, можно проверить по сумме сделки — до 50000 — согласовать по 3 этапу Начальником отдела, если от 50000 до 99999т.р. — стартует 4 этап — по роли Ген дир.
Ну в таком духе машинка..
(83)
Идея понятна в целом похожий механизм используется при определении какая роль рецензента должна согласовывать объект бд.
(82)
Антон, это понятно. Но мне нужно, чтобы документ не был доступен лдя редактирования, пока он не согласуется окончательно. Но во время смены статусов согласования я хочу чтобы документ грубо говоря разблокировался незаметно для пользователя, и в нем поменялся реквизит, а потом снова заблокировался для записи до следующей смены статуса согласования. Подскажи, можно такое реализовать тут?
(85)
Евгений,
через подсистему «Согласования» этого реализовать нельзя.
Механизм согласования не работает как нужно.
Пример:
Настройки:
Перед стартом — Заблокировать объект БД
При завершении если не согласовано — Разблокировать объект БД
При возвращении на доработку — Разблокировать объект БД
Запретить проведение объекта БД пока он не согласован — Истина
Стоит условие на документ «Реализация товаров и услуг» если Сумма документа Больше или равно «1 000»
Создаем новый документ «Реализация товаров и услуг» где сумма документа больше 1000. При проведении выдает «Ошибка! запрещено проводить документ, пока он не согласован для предмета согласования [Согласование по реализации товаров и услуг]». Все правильно документ подходит под условие и нужно его согласовать. Записываем документ.
Далее отправляем на согласование и согласовываем этот документ, статус становится «Утверждено».
И после согласования документу разрешено проведение, но срабатывает другая проверка на блокировку так как стоит условие «Перед стартом — Заблокировать объект БД» и выдает «»Ошибка! запрещено изменять объект согласования [Реализация товаров и услуг]» его все равно нельзя провести! Потому что в подписке на события перед записью сначала идет проверка на проведение, и потом проверка на блокировку объекта и отказ становится Истина, если он находится в регистре заблокированных документов.
Если поставить условие «При завершении если согласовано — Разблокировать объект БД» тогда смысл от этого согласования, если пользователь после согласования сможет зайти изменить спокойно данные в документе и провести его с новыми изменениями без всяких проверок. Документ при проведении уже не отправится на согласование так как уже имеет статус «Утверждено».
(87)
Добрый день, Илья.
Добавил задачуhttps://github.com/BlizD/BPS/issues/13
Если есть желание, можете сами реализовать механизм, который бы иначе работал.
Как раз в задаче это можно обсудить.
У меня к сожалению, пока времени вообще нет.
Нечаянно ткнул в минус, и похоже глюк на инфостарте, не могу опять поднять. Прошу прощения. (
(89) Добрый день,, Андрей. Все в порядке.
Подскажите, а можно ли её применить на платформе 8.2? При сравнении ругается, что только на 8.3.
Если переписать формы на обычные, то все ок будет?
(91) и почему объект «бпсУчетныеЗаписиЭлектроннойПочты» не служебный, а относящийся к подсистеме? Вроде ж почти везде оно есть. Или там хитрость какая?
(91)
Добрый день.
В принципе наверно проблем не будет. Но проще поставить платформу. Могу лишь сказать, что:
Почему не можете обновить платформу?
(92)
Это сделано намерено, так как подсистема встраивается в любые конфигурации и далеко не у всех есть такой справочник.
(93) потому что альфа-авто 4 релиза 🙂
(95)
1. Переделывать подсистему на обычные формы не надо, достаточно указать в свойствах конфигурации Альфа-Авто, что используется «Управляемое и обычное приложение». Подсистема согласований будет работать.
2. Обновить платформу, Вы, можете, другое дело, что режим совместимости в свойствах конфигурации Альфа-Авто останется 8.2.
3. Пришлите скриншот с текстом предупреждения.
Есть офф. отчет разработчиков — не рекомендуют использовать 8.3, а т.к. некие модули защищены, плюс хитрая подсистема лицензирования, а также торгового оборудования не дают покоя — бог знает как система поведёт себя. Не все так просто)
(29) Это значит процесс согласование не только теперь последовательный но и параллельный может быть? Поменяйте в описание «Согласование происходит последовательно, т.е. сначала согласовывает первый рецензент, если он согласовал затем следующий и так далее.», а то пока нашел это в комментах, успел расстроиться)
(175)
Дмитрий, ок добавлю.