Либо воспользуйтесь методом \Bitrix\Main\DB\Connection::add(), который вернет вам первичный ключ записи, либо после query используйте \Bitrix\Main\DB\Connection::getInsertedId()
|
|||
|
|
|
|
|||
|
|
|
|
Олег Брага, не надо ничего проверять. setValues() только добавляет данные во внутреннее хранилище переопределенных значений, внутри там нет никаких вычислений и можете дергать метод сколько хотите (он не перезаписывает, а всегда дополняет данные).
Не забудьте написать, получилось или нет. |
|
|
|
|
|
Олег Брага, должно работать.
Уберите вызов \Bitrix\DocumentGenerator\Document::getFields() до того, как вы вызываете setValues() Важно, чтобы ид моей компании был указан до того, как документ произведет инициализацию цепочки провайдеров и вычислит значения их полей. А в getFields() как раз идёт вычисление значений. После этого менять значение провайдера бесполезно, там будет работать только смена конечных значений. |
|
|
|
|
|
Олег Брага, проверил у себя. Работает.
Как я проверяю. 1. В init.php сделал обработчик.
2. Вывел доступные значения для поля "MY_COMPANY"
3. Ставим в обработчике значение поля
4. В документ вставилось название компании из реквизитов компании с ид 15 Пишите в таком же формате ваши действия, посмотрим, что не так. |
|||||||||
|
|
|
|
Evgeniy, можете пояснить, о чем речь?
Выше вы обсуждали работу с бизнес-процессами. Бизнес-процесс - это абстрактный процесс, который может быть запущен над конкретной существующей сущностью определенного типа (например, элемент универсального списка, лид). Для запуска бизнес-процессов есть рест-апи Этот метод запустит бизнес-процесс по вашему шаблону над определённой сущностью. Вы спрашиваете про метод documentgenerator.document.add. Это метод модуля "генератор документов", который занимается генерацией docx-файлов по шаблонам. Я думаю, что вам нужен именно bizproc.workflow.start |
|
|
|
|
|
Олег Брага, добрый день
По поводу события Александр Медведев вам правильно рассказал. Вам надо в обработчике события вызвать $document->setValues(['MY_COMPANY' => 1]); Вычисление конкретных значений полей происходит позже, после этого события. Там будут учтены переданные вами данные |
|||
|
|
|