Согласование (подсистема). Для любого справочника и документа в 1С. Встраивается в любые конфигурации




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?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='\

99 Comments

  1. BlizD

    Добавил видео обзор подсистемы согласования

    Reply
  2. BlizD

    Проверены следующие конфигурации:

    — Бухгалтерия предприятия 3.0 релиз 3.0.43.239

    — Консолидация ред. 2.1 релиз 2.1.3.1

    — Комплексная автоматизация 2.0 релиз 2.0.3.169

    Reply
  3. kraynev-navi

    + за хорошее документирование и видеоряд.

    Второе видео по настройке часть 2. При согласовании на 2:12 согласующий не видит Объект БД который он согласует (Объект не найден). Либо либо неудачный пример и что-то не так с правами Бахшиева, либо что-

    Reply
  4. BlizD

    (3) kraynev-navi,

    Добрый день.

    Да, Вы, правы.

    Просто у Бахшиева не были указаны права на документ «Заявка на расход денежных средств».

    Будет время исправлю видео.

    Спасибо, что сообщили.

    Reply
  5. dddxddd

    >запрет использования элемента справочника пока он не согласован

    особо ценно чтобы номенклатуру и поставщиков не плодили по 100500 шт за день…

    Reply
  6. BlizD

    (5) dddxddd,

    Добрый день.

    Постараюсь в ближайшее время добавить такую возможность.

    Reply
  7. BlizD

    (5)

    Обновление от 25.09.2016

    Выпущена версия «1.0.0.009» изменения:

    • Добавлена возможность указать свойство «Запретить использование объекта БД пока он не согласован» в справочник «Тип объекта БД».(ссылка на скриншот)
    • Исправлены роли подсистемы «Согласования», чтобы корректно обновлялись вспомогательные данные в конфигурациях где используются БСП
    Reply
  8. BlizD

    Добрый день

    Изменена стоимость подсистемы с 3 SM до 1 SM.

    Хорошего настроения и удачного дня!

    Reply
  9. BlizD

    Обновление от 15.11.2016

    Проект выложен на GitHub

    https://github.com/BlizD/BPS

    Reply
  10. brylig

    Добрый день!

    Поставил подсистему на УНФ 1.6.5.28. Возникло несколько вопросов:

    1. Кроме раздела «Согласование» появился еще и раздел «Прочее (не переносить)». В нем на панели навигации есть три пункта — «Договоры контрагентов», «Заявка на оплату» и «Контрагенты». Подозреваю, что надо было более тонко настраивать параметры слияния конфигураций, хотя все делал строго по видеоинструкции.

    2. Сломалась форма карточки пользователя в соответствующем справочнике. Теперь там нет параметров аутентификации в информационной базе. На скрине слева сломанная форма, справа — рабочая (иконку согласования поменял я сам).



    3. В условиях согласования для справочников (если конкретно, то «Контрагенты») очень ограничен выбор реквизитов для контроля. В частности, нет доступа к дополнительным реквизитам справочника.



    Конечно, вопрос можно решить с помощью произвольного условия, но это уже другой путь.

    4. Ну и самое главное — так и не разобрался в настройках предмета согласования в части действий. Если делать все по инструкции, то после согласования я не могу провести документ, так как он заблокирован.



    Для возможности его проведения я должен предусмотреть действие «Разблокировать объект БД» «При завершении если согласовано». При этом документ становится доступным для произвольного редактирования и повторного проведения без всякого дополнительного согласования. Как все-таки сделать так, чтобы после согласования документ возможно было провести, но нельзя редактировать, а редактирование становилось бы возможным только после отмены действующего согласования и требовало бы нового согласования перед повторным проведением.

    Reply
  11. BlizD

    (10) brylig,

    Добрый день, Илья.

    По поводу первых двух пунктов:

    1. Кроме раздела «Согласование» появился еще и раздел «Прочее (не переносить)». В нем на панели навигации есть три пункта — «Договоры контрагентов», «Заявка на оплату» и «Контрагенты». Подозреваю, что надо было более тонко настраивать параметры слияния конфигураций, хотя все делал строго по видеоинструкции.

    2. Сломалась форма карточки пользователя в соответствующем справочнике. Теперь там нет параметров аутентификации в информационной базе. На скрине слева сломанная форма, справа — рабочая (иконку согласования поменял я сам).

    Это признаки того, что подсистема перенесена не верно, т.е. были перенесены еще служебные объекты:

    http://f6.s.qip.ru/m9euvvHg.png

    После того как в конфигурации сделали «Конфигурация — Сравнить объединить с конфигурации из файла» выбрали файл CF

    Необходимо снять галочку со свойств, остальные галки не трогать.

    http://f3.s.qip.ru/m9euvvHi.png

    Необходимо сделать заново перенос подсистемы в вашу конфигурацию.

    По остальным пунктам записал, как появится свободное время, обработаю их и отпишусь Вам.

    Reply
  12. brylig

    Спасибо.

    Reply
  13. BlizD

    Добрый день, Илья.

    (10)

    В условиях согласования для справочников (если конкретно, то «Контрагенты») очень ограничен выбор реквизитов для контроля. В частности, нет доступа к дополнительным реквизитам справочника.

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

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

    Ну и самое главное — так и не разобрался в настройках предмета согласования в части действий. Если делать все по инструкции, то после согласования я не могу провести документ, так как он заблокирован.

    Для возможности его проведения я должен предусмотреть действие «Разблокировать объект БД» «При завершении если согласовано». При этом документ становится доступным для произвольного редактирования и повторного проведения без всякого дополнительного согласования. Как все-таки сделать так, чтобы после согласования документ возможно было провести, но нельзя редактировать, а редактирование становилось бы возможным только после отмены действующего согласования и требовало бы нового согласования перед повторным проведением.

    Да, Вы, правы такая возможность полезна, записал в доработки, как будет реализована напишу.

    Reply
  14. brylig

    Спасибо. Буду ждать.

    Reply
  15. AloneCorsar

    Доброе время суток!

    Встроил подсистему настроил для справочника Номенклатура.

    В результате вся номенклатура в системе приняла статус «Не Согласована» и соответственно недоступна для использования в документах.

    Попробовал изменить статус номенклатуры в закладке «Статусы согласований», по одной позиции меняется, групповая обработка не работает.

    Справочник «Номенклатура» содержит около 80000 позиций, и изменение статуса по одной позиции очень трудоемко. Неплохо было бы или при первичном заполнении данных выставить статус «Согласовано», либо дать возможность группового изменения реквизита.

    Reply
  16. BlizD

    (15) Добрый вечер, Юрий.

    Добавил в задачи

    https://github.com/BlizD/BPS/issues/3

    Reply
  17. AloneCorsar

    Спасибо.

    Reply
  18. Nezhdanov

    Добрый день. А для КА 2.0.3.67 подойдет данная система?

    Reply
  19. BlizD

    (18)Добрый день, Павел.

    Тестировал для

    — Комплексная автоматизация 2.0 релиз 2.0.3.169

    думаю для КА 2.0.3.67 тоже подойдет.

    Reply
  20. BlizD

    Выпуск релиза 1.0.0.010

    В обработке «Статусы согласований»:

    — реализована возможность установить статус для выделенных объектов.

    (15) Виктор, теперь можно выделить список элементов, и нажать «Установить статус» для выделенных объектов будет установлен выбранный статус.

    Reply
  21. mkostya

    А почему так происходит?

    Reply
  22. BlizD

    (21) Максим,

    Это сообщение говорит о том что динамический список почему то получил более 1 записи для документа заявка на расход дс.

    Подскажите в какой момент выдается ошибка?

    Есть ли возможность скинуть дт с примером ошибки?

    Reply
  23. b-real

    Здравствуйте!

    Розница 2.2. также требует внесения изменений в общий модуль «БизнесПроцессыИЗадачиСобытия», как и УТ 11

    Reply
  24. BlizD

    (23)

    Здравствуйте!

    Розница 2.2. также требует внесения изменений в общий модуль «БизнесПроцессыИЗадачиСобытия», как и УТ 11

    Добрый день, Баир.

    Спасибо, сейчас добавлю в описание.

    Можете указать точную версию Розницы 2.2 ?

    Reply
  25. b-real

    (24) смотрел в версии 2.2.4.33

    Reply
  26. KoIIIka42

    Добрый день! Для Бухгалтерии 2.0 пойдет?

    Reply
  27. BlizD

    (26)

    Добрый день! Для Бухгалтерии 2.0 пойдет?

    Добрый день, Ирина.

    Да, подойдет.

    Reply
  28. BlizD

    Обновление от 27.04.2017

    Выпуск релиза 1.0.0.012

    Изменения

    Исправлена работа в клиент серверном варианте работы;

    Проверены следующие конфигурации:

    — Бухгалтерия строительной организации релиз 2.0.66.23

    Reply
  29. BlizD

    Обновление от 01.06.2017

    Выпуск релиза 1.0.0.013

    Изменения

    Добавлен реквизит «Не увеличивать номер очереди» в справочник «Предметы согласований». Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;

    Пример:

    Reply
  30. user764633

    День добрый!

    Уточните, пожалуйста, есть ли возможность, или такая возможность планируется, для запроса уточнения от участника согласования к инициатору?

    И второй момент, можно ли будет настроить группы согласующих с возможностью параллельного и последовательного согласования документа?

    Например, группа 1 имеет признак «Параллельное согласование», следовательно всем пользователям данной группы будет одновременная рассылка на э. я., что необходимо принять участие в согласовании документа.

    Или так:

    Группа 2 имеет признак «Последовательное согласование», т. е. уведомление о необходимости принятия участия в процессе согласования документа придет на э. я. сначала только первому пользователю группы, и только после его согласования второму и т. д.

    Reply
  31. serdacik

    Добрый день.

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

    А так если документ получил статус «Утвержден» он бы автоматически провелся.

    Спасибо.

    Reply
  32. BlizD

    (30)

    Добрый день, Самвел.

    Прошу прощения видимо пропустил это сообщение.

    День добрый!

    Уточните, пожалуйста, есть ли возможность, или такая возможность планируется, для запроса уточнения от участника согласования к инициатору?

    И второй момент, можно ли будет настроить группы согласующих с возможностью параллельного и последовательного согласования документа?

    Например, группа 1 имеет признак «Параллельное согласование», следовательно всем пользователям данной группы будет одновременная рассылка на э. я., что необходимо принять участие в согласовании документа.

    Или так:

    Группа 2 имеет признак «Последовательное согласование», т. е. уведомление о необходимости принятия участия в процессе согласования документа придет на э. я. сначала только первому пользователю группы, и только после его согласования второму и т. д.

    Возможно изменения сделанные в 13 релизе как раз то, что Вам нужно.

    Выпуск релиза 1.0.0.013

    Изменения

    Добавлен реквизит «Не увеличивать номер очереди» в справочник «Предметы согласований». Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;

    Что касается

    Уточните, пожалуйста, есть ли возможность, или такая возможность планируется, для запроса уточнения от участника согласования к инициатору?

    Пока такая возможность не планируется.

    Пожелание записал.

    Reply
  33. BlizD

    (31)

    Добрый день.

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

    А так если документ получил статус «Утвержден» он бы автоматически провелся.

    Спасибо.

    Добрый день, Сергей.

    Автоматического проведения документа при установке статуса «Утвержден» такое не планируется делать.

    Пожелание записал, если что-то измениться по этому поводу сообщу.

    Reply
  34. serdacik

    Cпасибо.

    Reply
  35. serdacik

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

    например — «Заявка на расходование средств» —> «Платежное поручение исходящее»

    Заранее спасибо.

    Reply
  36. serdacik

    Добрый день.

    Есть новые наработки?

    Reply
  37. BlizD

    (36)

    Добрый день, Сергей.

    Нет пока новых доработок нет.

    Reply
  38. KoIIIka42

    Антон, добрый день! Скажите можно ли сделать чтобы инициатор получал уведомление не при завершение, а всегда?

    Reply
  39. BlizD

    (38)

    Добрый день, Ирина.

    Антон, добрый день! Скажите можно ли сделать чтобы инициатор получал уведомление не при завершение, а всегда?

    Нет, такой настройки сейчас нет.

    Reply
  40. KoIIIka42

    Жаль, спасибо!

    Reply
  41. KoIIIka42

    Доброго дня! кажите а можно отправлять сообщение с вложением? И планируется ли это доработать если нет? Спасибо.

    Reply
  42. BlizD

    (41)

    Доброго дня! кажите а можно отправлять сообщение с вложением? И планируется ли это доработать если нет? Спасибо.

    Добрый день, Ирина.

    Такой возможности нет.

    Само прикрепления вложения к сообщению это небольшая проблема.

    Проблема как это реализовать универсально, т.к. формирование вложений (печатных форм, файлов, отчетов) в каждой конфигурации реализовано по своему.

    Поэтому, обещать ничего не могу.

    В любом случае задачу записал.

    Reply
  43. serdacik

    (37)

    Добрый день.

    Доработки проведения документа после согласования не появилось?

    Reply
  44. BlizD

    (43)

    Добрый день.

    Нет, но не появилось.

    Reply
  45. titanium2008

    Добрый день, спасибо Вам за подсистему.

    Вопрос — а можно согласовывать не последовательно а сразу всем? например уведомления рассылаются сразу 3 пользователям и они жмут согласовать независимо друг от друга.

    Reply
  46. BlizD

    (45)

    Добрый день, спасибо Вам за подсистему.

    Вопрос — а можно согласовывать не последовательно а сразу всем? например уведомления рассылаются сразу 3 пользователям и они жмут согласовать независимо друг от друга.

    Добрый день, спасибо за отзыв.

    Да, это возможно, для этого добавлен реквизит «Не увеличивать номер очереди» (в релизе 1.0.0.013) в справочник «Предметы согласований».

    Это позволяет создавать задачи по согласованию для нескольких ролей сразу.;

    Пример gif

    Reply
  47. asirius

    Добрый день!

    Возможно ли настроить такой сценарий:

    1. Вводится новый контрагент, для его использования требуется согласование.

    2. У согласованного контрагента меняются реквизиты => Контрагент разблокируется для редактирования и требуется пересогласование. В рецензии на пересогласование в идеале показать, какие реквизиты поменялись.

    Reply
  48. BlizD

    (47)

    Добрый день!

    Возможно ли настроить такой сценарий:

    1. Вводится новый контрагент, для его использования требуется согласование.

    2. У согласованного контрагента меняются реквизиты => Контрагент разблокируется для редактирования и требуется пересогласование. В рецензии на пересогласование в идеале показать, какие реквизиты поменялись.

    Добрый день.

    В текущей версии, такое реализовать нельзя.

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

    Поэтому рекомендую, Вам, самостоятельно доработать такой механизм конкретно в Вашей конфигурации.

    В любом случае пожелание записал, если что то изменится, обязательно сообщу.

    Reply
  49. serdacik

    Добрый день.

    Подскажите как настроить подсистему для согласования справочников?

    С документами разобрались. Интересует согласование «Контрагентов», «Номенклатура», «Статьи затрат». У каждого справочника свой согласующий.

    Спасибо.

    Reply
  50. BlizD

    (49)

    Добрый день, Сергей.

    По идее настройка согласования справочника, такая же как и для документов.

    Reply
  51. serdacik

    А что произойдет если утвержденный элемент справочника отредактируют? Потребуется повторное согласование?

    Reply
  52. BlizD

    (51)

    Сергей,

    в текущей версии, ничего не произойдет.

    Сейчас, можно настроить, так чтобы нельзя использовать элемент справочника,

    пока он не согласован.

    Reply
  53. serdacik

    Спасибо.

    А в последующих релизах планируются доработки позволяющие контролировать изменения в справочниках?

    Reply
  54. BlizD

    (53)

    Сергей,

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

    Пожелание записал, если будет реализовано, сразу сообщу.

    Reply
  55. Tangram

    Добрый день!

    На Комплексная автоматизация 1.1 эту подсистему прицепить можно?

    Reply
  56. BlizD

    (55)

    Добрый день, Максим.

    Да, не должно быть проблем.

    В комплексной насколько помню очень многое взято из упп. А в упп встраивается.

    Reply
  57. irinagalkina

    Добрый день! Подскажите, пожалуйста. А где можно найти все задачи, которые создает подсистема при согласовании? Например, чтобы проанализировать время визирования документов согласующими лицами? И можно ли в «Мои задачи-Задачи по согласованию» добавить поля из предмета согласования, например, приоритет или контрагента? Заранее спасибо!

    Reply
  58. BlizD

    Обновление от 08.12.2017

    Выпуск релиза 1.0.0.013

    Исправление ошибки:

    * Ложное срабатывание проверки возможности использования, если реквизит не заполнен #9 My https://github.com/BlizD/BPS/issues/9

    Reply
  59. BlizD

    (57)

    Добрый день! Подскажите, пожалуйста. А где можно найти все задачи, которые создает подсистема при согласовании? Например, чтобы проанализировать время визирования документов согласующими лицами? И можно ли в «Мои задачи-Задачи по согласованию» добавить поля из предмета согласования, например, приоритет или контрагента? Заранее спасибо!

    Добрый день,

    >»А где можно найти все задачи, которые создает подсистема при согласовании? Например, чтобы проанализировать время визирования документов согласующими лицами?»

    через интерфейс открыть все задачи не получится.

    Единственное могу предложить использовать КонсольЗапросов и в котором смотреть такой запрос:

    ВЫБРАТЬ
    бпсЗадача.Ссылка,
    бпсЗадача.ВерсияДанных,
    бпсЗадача.ПометкаУдаления,
    бпсЗадача.Номер,
    бпсЗадача.Дата,
    бпсЗадача.БизнесПроцесс,
    бпсЗадача.ТочкаМаршрута,
    бпсЗадача.Наименование,
    бпсЗадача.Выполнена,
    бпсЗадача.ФактическийИсполнитель,
    бпсЗадача.ФактическаяДатаВыполнения,
    бпсЗадача.ОтложенаДо,
    бпсЗадача.КлючЗадачи,
    бпсЗадача.Пользователь,
    бпсЗадача.РольАдресации,
    бпсЗадача.ПодразделениеАдресации,
    бпсЗадача.Представление
    ИЗ
    Задача.бпсЗадача КАК бпсЗадача

    Показать

    по поводу

    > И можно ли в «Мои задачи-Задачи по согласованию» добавить поля из предмета согласования, например, приоритет или контрагента? Заранее спасибо!

    Интерактивно это не получится сделать. Необходимо дописывать самостоятельно.

    Reply
  60. itriot11

    «Запретить использование объекта БД пока он не согласован» — не понимаю, что подразумевается по использованием?

    Reply
  61. user774630

    Оффтоп.

    На картинке ошибка. Правильно в данном случае: «Что бы еще согласовать?».

    Reply
  62. kolya_tlt

    вы не пытаетесь случаем повторить функционал 1С:Документооборот?

    Reply
  63. BlizD

    (60)

    Добрый день, Андрей.

    Под использованием понимается следующее: проверка если данный объект указан в другом объекте.

    Например:

    «Договор №15» нельзя указать в «Реализации товаров» или где то еще, сработает проверка перед записью.

    Reply
  64. BlizD

    (61)

    Спасибо, поправил, по идее скоро обновится.

    Reply
  65. BlizD

    (62)

    вы не пытаетесь случаем повторить функционал 1С:Документооборот?

    Намеренно, точно не пытался.

    Если в каких то моментах он схож тогда это даже хорошо.

    Основное преимущество данной конфигурации, возможность встраивания в любую другую конфигурацию.

    Reply
  66. itriot11

    (63) Добрый день!

    Для каких объектов применяется подписка на события перед записью?

    Reply
  67. BlizD

    (66)

    Андрей,

    Для каких объектов применяется подписка на события перед записью?

    для всех справочников и для всех документов.

    Reply
  68. kolya_tlt

    (65)

    Намеренно, точно не пытался.

    Если в каких то моментах он схож тогда это даже хорошо.

    Основное преимущество данной конфигурации, возможность встраивания в любую другую конфигурацию.

    это преимущество давным давно имеется в 1С:ДО, а конкретнее в Библиотеке интеграции с Документооборотом

    Reply
  69. itriot11

    (67)я правильно понимаю, что таким образом несогласованные объекты могут быть использованы, например в независимых регистрах сведений или задействованы в типовых обменах?

    Reply
  70. BlizD

    (69)

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

    Андрей, да, правильно.

    Reply
  71. itriot11

    (70) спасибо.

    Reply
  72. BlizD

    (68)

    это преимущество давным давно имеется в 1С:ДО, а конкретнее в Библиотеке интеграции с Документооборотом

    Возможно ошибаюсь, поправьте если не так.

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

    в целевой конфигурации должна использоваться достаточно свежая БСП (библиотека стандартных подсистем).

    Или такой зависимости нет?

    Reply
  73. kolya_tlt

    (72)

    Возможно ошибаюсь, поправьте если не так.

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

    в целевой конфигурации должна использоваться достаточно свежая БСП (библиотека стандартных подсистем).

    Или такой зависимости нет?

    требутся БСП 2.1.2

    Reply
  74. BlizD

    (73)

    требутся БСП 2.1.2

    В этом случае каждый сам решает, что ему проще:

    Вариант №1:

    * внедрить в свою конфигурацию БСП нужной версии;

    * далее внедрить использование «Библиотеки интеграции с Документооборотом»;

    если не куплена 1с: ДО тогда добавляем еще:

    * купить 1с: ДО;

    * внедрить 1с: ДО;

    Вариант №2

    * внедрить эту подсистему.

    Если задача состоит только в согласовании, то с моей точки зрения

    у варианта №2 есть преимущества:

    * более безопасный;

    * быстрее выполнимый;

    * значительно менее затратный по деньгам;

    * конечный результат будет достигнут с высокой вероятностью.

    Reply
  75. kolya_tlt

    (74) если вы имеете один ларёк, продающий конфеты у метро то согласен с вами. если — сотню ларьков, то наверно задумаетесь брать решение вендора, который десяток лет на рынке или нетленку непонятного поставщика с неизвестной поддержкой и не прогнозируемым временем решения всплывших багов

    Reply
  76. BlizD

    (75)

    Опять же каждый сам для себя решает, что ему важнее.

    Могу лишь только добавить, что «нетленка» выложена на Github и любой можешь доработать ее и поправит всплывший баг.

    Далее исправления (через Pull Request) попадут в основную ветку продукта.

    Как это сделать писал в

    * «Github и 1С. Пошаговая инструкция на конкретном примере» https://infostart.ru/public/691382/

    Reply
  77. lol48

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

    Reply
  78. BlizD

    (77)

    Добрый день, Евгений.

    Правильно понимаю, что у Вас, в Вашем документе есть реквизит «СтатусСогласования» и Вы хотите его изменить вручную?

    При этом у документа стоит запрет использования пока объект не согласован?

    P.S. меня зовут Антон, а то как то Автор, совсем абстрактно.

    Reply
  79. lol48

    (78)

    Добрый день, Евгений.

    Правильно понимаю, что у Вас, в Вашем документе есть реквизит «СтатусСогласования» и Вы хотите его изменить вручную?

    При этом у документа стоит запрет использования пока объект не согласован?

    P.S. меня зовут Антон, а то как то Автор, совсем абстрактно.

    Да, Антон, все верно. Что именно влияет на блокировку объектовБД?

    Reply
  80. karimov_m

    Добрый день!

    А есть механизм «понимания» о необходимости согласования в целом по объекту?

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

    Второй момент — описательный состав согласования (что согласовывать и почему оно пришло на согласование) — как то редактируется? Или мне необходимо, все же, дорабатывать (как я вижу) форму согласующего лица, относительно примера: отображать те номенклатурные позиции, которые не рентабельны в этой сделке. Если кратко — как внедрить свою форму согласующего?

    Reply
  81. BlizD

    (80)

    Добрый день.

    Добрый день!

    А есть механизм «понимания» о необходимости согласования в целом по объекту?

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

    В данный момент такого механизма нет. Но также как и Вы считаю, что он был бы полезен.

    Добавил задачу https://github.com/BlizD/BPS/issues/11

    Теперь если рассматривать текущие возможности подсистемы, то это реализовать возможно.

    Необходимо в условиях прописать Ваш код (см. вложение).

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

    и статус будет сразу «Утвержден» (когда нажмут на кнопку «Отправить на согласование»)

    Второй момент — описательный состав согласования (что согласовывать и почему оно пришло на согласование) — как то редактируется? Или мне необходимо, все же, дорабатывать (как я вижу) форму согласующего лица, относительно примера: отображать те номенклатурные позиции, которые не рентабельны в этой сделке. Если кратко — как внедрить свою форму согласующего?

    Если, Вы, про пояснение которое приходит к рецензенту.

    То такая доработка планировалась, но не реализована.

    возможность настраивать шаблон для формирования текста пояснения, которое указывается при старте согласования и отправке уведомлений на почту (например: включать валюту документа, менеджера, сумму и т.п. в пояснение);

    Добавил задачу: https://github.com/BlizD/BPS/issues/12

    По поводу реализации данных доработок, не могу обещать когда сделаю, т.к. свободного времени нету.

    Если будут желающие доработать это, то им помогу.

    Reply
  82. BlizD

    (79)

    Евгений,

    Что именно влияет на блокировку объектовБД?

    на блокировку объекта БД влияет два флага в элементе справочника «Предметы согласования»:

    * Запретить проведение объекта БД пока он не согласован

    * Запретить использование объекта БД пока он не согласован

    Если они оба сняты, тогда блокировка не выполняется.

    Reply
  83. karimov_m

    (81)Понятно. Спасибо за ответ.

    Просто в свое время тоже реализовывал (не совсем удачный, сейчас я бы сделал по другому) подобный функционал, и там предусматривал такой подход:

    Есть отдельный справочник «Настройки согласования», в нем можно подобрать объект метаданных (документ, справочник) который подлежит согласованию, установить его статус — Активный, т.е. согласования по нему включены.

    Далее при проведении такого объекта, делается проверка на участие его в схеме согласования (по справочнику), далее выполняется Код, который можно написать в режиме предприятия (входит в состав справочника Настройка согласования), он называется «Код необходимости старта процесса согласования» — который должен вернуть Структуру с полем «Результат» булева типа: Истина/Ложь. В контексте кода есть переменная ОбъектСогласованияСсылка.

    Далее в этом справочнике есть ТЧ «Этапы согласования», в каждой строке ТЧ — Наименование этапа и Роль исполнителя по этапу. Для каждой строчки (этапа согласования) — есть также свой «Код условия перехода в Этап согласования» — который должен вернуть Истину, если необходимо стартовать данный этап согласования рецензентом.

    Например, в первом этапе можно всегда возвращать Истину, фактически это тоже что и «Код необходимости старта согласования» в целом. Далее, выполняется код второго этапа — например в нем можно проверить рентабельность сделки если с ней всё ок — идем дальше по этапам (если нет — то стартует задача по Роли на этапе), далее, например в 3-4 этапах, можно проверить по сумме сделки — до 50000 — согласовать по 3 этапу Начальником отдела, если от 50000 до 99999т.р. — стартует 4 этап — по роли Ген дир.

    Ну в таком духе машинка..

    Reply
  84. BlizD

    (83)

    Идея понятна в целом похожий механизм используется при определении какая роль рецензента должна согласовывать объект бд.

    Reply
  85. lol48

    (82)

    Антон, это понятно. Но мне нужно, чтобы документ не был доступен лдя редактирования, пока он не согласуется окончательно. Но во время смены статусов согласования я хочу чтобы документ грубо говоря разблокировался незаметно для пользователя, и в нем поменялся реквизит, а потом снова заблокировался для записи до следующей смены статуса согласования. Подскажи, можно такое реализовать тут?

    Reply
  86. BlizD

    (85)

    Евгений,

    через подсистему «Согласования» этого реализовать нельзя.

    Reply
  87. Илья Баталов

    Механизм согласования не работает как нужно.

    Пример:

    Настройки:

    Перед стартом — Заблокировать объект БД

    При завершении если не согласовано — Разблокировать объект БД

    При возвращении на доработку — Разблокировать объект БД

    Запретить проведение объекта БД пока он не согласован — Истина

    Стоит условие на документ «Реализация товаров и услуг» если Сумма документа Больше или равно «1 000»

    Создаем новый документ «Реализация товаров и услуг» где сумма документа больше 1000. При проведении выдает «Ошибка! запрещено проводить документ, пока он не согласован для предмета согласования [Согласование по реализации товаров и услуг]». Все правильно документ подходит под условие и нужно его согласовать. Записываем документ.

    Далее отправляем на согласование и согласовываем этот документ, статус становится «Утверждено».

    И после согласования документу разрешено проведение, но срабатывает другая проверка на блокировку так как стоит условие «Перед стартом — Заблокировать объект БД» и выдает «»Ошибка! запрещено изменять объект согласования [Реализация товаров и услуг]» его все равно нельзя провести! Потому что в подписке на события перед записью сначала идет проверка на проведение, и потом проверка на блокировку объекта и отказ становится Истина, если он находится в регистре заблокированных документов.

    Если поставить условие «При завершении если согласовано — Разблокировать объект БД» тогда смысл от этого согласования, если пользователь после согласования сможет зайти изменить спокойно данные в документе и провести его с новыми изменениями без всяких проверок. Документ при проведении уже не отправится на согласование так как уже имеет статус «Утверждено».

    Reply
  88. BlizD

    (87)

    Добрый день, Илья.

    Добавил задачу https://github.com/BlizD/BPS/issues/13

    Если есть желание, можете сами реализовать механизм, который бы иначе работал.

    Как раз в задаче это можно обсудить.

    У меня к сожалению, пока времени вообще нет.

    Reply
  89. sempaii

    Нечаянно ткнул в минус, и похоже глюк на инфостарте, не могу опять поднять. Прошу прощения. (

    Reply
  90. BlizD

    (89) Добрый день,, Андрей. Все в порядке.

    Reply
  91. triviumfan

    Подскажите, а можно ли её применить на платформе 8.2? При сравнении ругается, что только на 8.3.

    Если переписать формы на обычные, то все ок будет?

    Reply
  92. triviumfan

    (91) и почему объект «бпсУчетныеЗаписиЭлектроннойПочты» не служебный, а относящийся к подсистеме? Вроде ж почти везде оно есть. Или там хитрость какая?

    Reply
  93. BlizD

    (91)

    Добрый день.

    В принципе наверно проблем не будет. Но проще поставить платформу. Могу лишь сказать, что:

    тестирование производилось на платформе 8.3.8.1652

    Почему не можете обновить платформу?

    Reply
  94. BlizD

    (92)

    Это сделано намерено, так как подсистема встраивается в любые конфигурации и далеко не у всех есть такой справочник.

    Reply
  95. triviumfan

    (93) потому что альфа-авто 4 релиза 🙂

    Reply
  96. BlizD

    (95)

    потому что альфа-авто 4 релиза 🙂

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

    2. Обновить платформу, Вы, можете, другое дело, что режим совместимости в свойствах конфигурации Альфа-Авто останется 8.2.

    3. Пришлите скриншот с текстом предупреждения.

    Reply
  97. triviumfan

    Есть офф. отчет разработчиков — не рекомендуют использовать 8.3, а т.к. некие модули защищены, плюс хитрая подсистема лицензирования, а также торгового оборудования не дают покоя — бог знает как система поведёт себя. Не все так просто)

    Reply
  98. Dmitrii D

    (29) Это значит процесс согласование не только теперь последовательный но и параллельный может быть? Поменяйте в описание «Согласование происходит последовательно, т.е. сначала согласовывает первый рецензент, если он согласовал затем следующий и так далее.», а то пока нашел это в комментах, успел расстроиться)

    Reply
  99. BlizD

    (175)

    Дмитрий, ок добавлю.

    Reply

Leave a Comment

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