Вот смотрю сейчас и вижу - что бы воспользоваться этим компонентом, нужно передать в скрипт - место хранения файла, все остальные параметры будут известны и постоянны.
Дальше - можно проверить, перенесся ли файл? Через подключенную сетевую папку... Если все отлично - передать параметры для запуска БП. В ответ - в обозначенной папке должен создаться файл с названием документа и этапом его исполнения внутри. Пускай при запуске будет просто "Запуск БП" Из 1с проанализировать - есть ли такой файл? Если есть - значит БП запустился. Дальше - просто сканить папку с файлом на наличие изменений через определенное время и при наличии оных - вносить изменения в реквизит документа выводящего этап его исполнения в 1с.
Логично, если так сделать?
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Ну я уже говорил - WS =) можно прописать нормальные интерфейсы и передавать/дёргать информацию в один заход. Например отправлять файл через метод WS и сразу возвращать ответ с идом созданного элемента. По мне так это удобней, только читать больше надо будет, чтобы разобраться =) Но это имхо =)
Ясно, если не ошибаюсь, то именно так обменивается с Битрикс стандартная перегрузка в 1с 8?
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
4) При записи документа в 1с создаём Экселовский файл и помещаем его в созданный сетевой диск подключенного инфоблока. Как я понимаю - при помещении файла в инфоблок таким способом в Битриксе он всё-таки регистрируется и ему присваивается код. Это было бы логично! Я прав или нет?
а, понял. да, в битриксе создастся элемент инфоблока в этом случае. только его айдишник при помещении файла в папку вы никак не получите, только поиском по инфоблоку выцеплять (причём поиск скорее всего придётся выполнять только по названию файла, с реквизитами там не особо, простенький сериализованный массив только).
Ведь это вполне подходит: 5) Через 1с делаем обращение к скрипту с передачей параметра - Имя документа, который помещен в сетевой диск в п. 4). 6) Выполняется скрипт, который по имени файла должен найти присвоенный файлу Код и через указанные выше функции запустить бизнес-процесс.
Функции обращения к массиву не подскажешь?
Цитата
nukemonk пишет: Но я бы не использовал наверное такой способ, не внушает он мне доверия =)
А какие есть ещё варианты? Прямое помещение файла в этот каталог через ФТП даст файлу ID?
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Я может не так выразился, но ход мыслей у меня такой...
1) Создаем новый инфоблок, например, "Документы заявки" (по типу как "Документы руководства"). 2) Подключаем к этому Инфоблоку бизнес-процессы и пишем новый бизнес-процесс утверждения заявки. 3) Папку с файлами Инфоблока подключаем через сетевой диск (в проводнике - Подключить сетевой диск... и т.д.) 4) При записи документа в 1с создаём Экселовский файл и помещаем его в созданный сетевой диск подключенного инфоблока. Как я понимаю - при помещении файла в инфоблок таким способом в Битриксе он всё-таки регистрируется и ему присваивается код. Это было бы логично! Я прав или нет? 5) Через 1с делаем обращение к скрипту с передачей параметра - Имя документа, который помещен в сетевой диск в п. 4). 6) Выполняется скрипт, который по имени файла должен найти присвоенный файлу Код и через указанные выше функции запустить бизнес-процесс. 7) В бизнес-процессе на каждом шаге утверждения использовать элемент БП "Код ПХП", который бы создавал файл txt (в любом установленном нами файловом хранилище - откуда он будет считываться 1с), с именем = названию файла, и в этот файл бы записывал текущий статус выполнения заявки. При изменении статуса - этот файл следует перезаписывать, т.е. изменять содержимое файла, содержащего название текущего статуса. 8) В 1с через каждые минут 30 (можно и чаще при необходимости) делать сканирование папки, где хранится созданный файл Название_документа.тхт и со статусом утверждения внутри. Примечание: Для утверждаемого документа следует создать новый реквизит для указания статуса, в который записывать статус из текстового файла. И соответственно этот реквизит начать выводить в отчетах по заявкам, что бы создавшие заявку пользователи видели на каком этапе исполнения она сейчас находится. 9) После всех утверждений, заявка становится видна в Снабжении и приобретает статус - "На исполнении в снабжении". Когда по этой заявке будут делаться заказы поставщикам, то из этого документа будет считываться дата поступления товара на предприятие, и статус по заказанным номенклатурным позициям будет меняться на "Ожидается поступление дд.мм.гггг".
Я вижу решение этой задачи как-то так. Что неверно в этой схеме?
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Из 1с документ сохранять во временную папку компьютера в формате *.xls, а потом (так же средствами 1с) по ФТП переносить файл в конкретную папку нужного инфоблока с документами подобного типа (к которой будет прикреплен нужный бизнес-процесс утверждения), но не знаю как работает механизм регистрации документов и присвоения кодов и какими функциями можно получить присвоенный документу код.
К тому же если не получится по ФТП, то можно подключить сетевой диск папки документов инфоблока и переносить сохраненный из 1с файл в неё.
Но вопрос открыт - как получить присвоенный документу код? Можно сделать по первобытному запрос к нужной таблице MySQL (только эту таблицу нужно сначала разыскать), но думаю, что есть более цивилизованный способ - через API. Покопаюсь в документации...
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Почитал высланный файл с описанием бизнес-процессов, в принципе все понятно:
Так бизнес-процесс запускается:
Цитата
// Код шаблона бизнес-процесса (при создании запускаемого БП будет нам известен) $workflowTemplateId = 12;
// Бизнес-процесс запускается для документа - элемента инфоблока с кодом 358 (вот тут надо разобраться, как файлу, который по задумке, должен попасть в Битрикс из 1С, - присваивается код и как его узнать) $documentId = array("iblock", "CIBlockDocument", 358);
Как считать статус тоже ясно. Зададим новый параметр, в котором будут храниться статусы и при изменении статусы будем присваивать этому параметру. Считываются параметры командами:
Цитата
$rootActivity = $this->GetRootActivity(); if ($rootActivity->IsPropertyExists("MyProperty")) $val = $rootActivity->MyProperty;
Вывод: осталось не выясненным только, как файлу, который по задумке, должен попасть в Битрикс из 1С, - присваивается код инфоблока.
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
В принципе проблему описал. В новой группе в разделе Файлы создаем новую папку с файлами. Заходим в меню Документы - Документы группы - Видим название группы и заходя в группу видим созданную папку. Можем зайти в эту папку и продолжить работу в обычном режиме.
Проблема начинается, когда переименовываем группу, изменяя название. Переходим по указанному пути: Документы - Документы группы - Видим название группы, но при попытке зайти в эту группу, Битрикс выдаёт, что путь не найден.
Кто-нибудь сталкивался с этим? Это баг или же я невнимательно мат. часть читаю, поскольку такую проблему (и соответственно её решение) не нахожу...
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Кстати, хорошая идея появилась. После каждого утверждения вместо оповещения вносить "Код ПХП" на изменение имеющегося или добавление нового текстового файла (записываемого в заданную папку) с названием утверждаемого документа, а в сам файл - этап выполнения.
Например, перед тем, как документ попадет на утверждение директора будет создан (или изменен имеющийся) файл "Заказ покупателя № 00000437.тхт" в котором будет записана (или изменена с прежнего состояния) строчка: "Утверждается у директора".
Тогда (подключившись по фтп и прочитав этот файл) в 1с можно будет получить текущий статус документа. И если статус конечный (заданный в бизнес-процессе, а значит известный нам) после считки и внесения изменений в 1с (что бы этот документ стал виден в 1с снабженцев) файл можно удалять...
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
О-о-о... уже что-то. Есть от чего оттолкнуться. Спасибище!!!
Про "код ПХП" конечно интересно, но что им можно сделать? Инициатором, думаю, должна выступать 1с и проверять (через обращение к скрипту) скажем через каждые минут 20 - есть документ с присвоенным 1с названием в бизнес-процессах? Есть! А не конечный ли этап бизнес-процесса? Конечный! Супер - выставляем в 1с реквизит - "видим для Снабжекния" в Истина. Дальше просто обыгрываю событие изменения этого реквизита в Истина - появлением документа в журнале Снабженцев с выделенным цветом и выводом сообщения или ещё как...
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций
Это у меня есть. Ясно - значит дальше предстоит самому копать и разбирать что хранит та или иная переменная и что выполняет та или иная функция модуля БП и искать ту функцию, которая делает запуск БП и делать запуск через неё прописывая свои параметры. Я правильно мыслю?
сопровождаю блог об 1С Предприятие 8.3, где публикую материалы по администрированию, настройке и сопровождению типовых конфигураций