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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2026-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 не будет опубликован. Обязательные поля помечены *