Подстановка соглашения 1С УТ в заказ клиента по произвольному алгоритму Битрикс
Добрый день
В При выполнении кода реквизит "Соглашение" в заказе клиента остается пустым.
Помогите пожалуйста, что не так в коде.
Требуется
При заказе от Физиков подставлять "Розничная для интернет магазина",
а елли Юр. лица "Типовое соглашение для оптовиков"
Стандартные алгоритмы не могут это, насколько я понимаю. Может кто подскажет?
В При выполнении кода реквизит "Соглашение" в заказе клиента остается пустым.
Помогите пожалуйста, что не так в коде.
Требуется
При заказе от Физиков подставлять "Розничная для интернет магазина",
а елли Юр. лица "Типовое соглашение для оптовиков"
Стандартные алгоритмы не могут это, насколько я понимаю. Может кто подскажет?
СОГЛОПТ = новый запрос;
СОГЛОПТ.Текст = "ВЫБРАТЬ
| СоглашенияСКлиентами.Ссылка КАК Ссылка
| ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ГДЕ
| СоглашенияСКлиентами.Наименование ПОДОБНО &СтрокаПоиска";
СОГЛОПТ.УстановитьПараметр("СтрокаПоиска", "Типовое соглашение для оптовиков");
СОГЛРОЗН = новый запрос;
СОГЛРОЗН.Текст = "ВЫБРАТЬ
| СоглашенияСКлиентами.Ссылка КАК Ссылка
| ИЗ
| Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ГДЕ
| СоглашенияСКлиентами.Наименование ПОДОБНО &СтрокаПоиска";
СОГЛРОЗН.УстановитьПараметр("СтрокаПоиска", "Розничная для интернет магазина");
Если [Документ].Контрагент.ИНН <> "Неопределено" Тогда
[Результат] = СОГЛОПТ.Выполнить();
Иначе
[Результат] = СОГЛРОЗН.Выполнить();
КонецЕсли;
ПоказатьНайденные решения
(3) [Результат] = Выборка.Ссылка;
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.
Если ЗначениеЗаполнено([Документ].Контрагент.ИНН)Тогда
Выборка = СОГЛОПТ.Выполнить().Выбрать();
Если выборка.Следующий() Тогда
[Результат] = Выборка.Ссылка;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А как должно быть - наименование в точности равно "Типовое соглашение для оптовиков" ? (вообще в этом случае ПОДОБНО не нужно, можно просто = использовать) И вам сложно будет подсказать, т.к. вероятно в базе есть какой-то шаблон, как этот код должен выглядеть. Действительно ли достаточно результат запроса получить?
Если [Документ].Контрагент.ИНН <> "Неопределено" Тогда вот это явно не правильно ИНН не может быть равен "Неопределено". Если речь о заполненности - можно использовать ЗначениеЗаполнено()
Если [Документ].Контрагент.ИНН <> "Неопределено" Тогда вот это явно не правильно ИНН не может быть равен "Неопределено". Если речь о заполненности - можно использовать ЗначениеЗаполнено()
(2)
//Параметр на создаваемый/редактируемый документ происходит через параметр [Документ]
// Параметр на создаваемую новую строку документа [НоваяСтрока] Если ее нет(шапка заполняется), то Неопределено
// Глобальные настройки в параметре [СтруктураНастроек]
//
// Параметр, возвращающий результат [Результат]
//
// Параметр на данные документа ИЗ XML [ДокументXML]
// Параметр, на данные строки товаров Из XML [СтрокаXML]. Если ее нет, то Неопределено
Соответственно если нет XML такого поля, то передаёт "Неопределено" - как я понял.
Как я понимаю, нужна ссылка на соглашение.
Проблема в том, что особо документации нет.
Вот пример нашел.
Для каждого стр из [ДокументXML].ЗначенияРеквизитов Цикл
Если стр.Наименование = "Код контрагента" Тогда
Если значениеЗаполнено(стр.Значение) Тогда
//Убираем лидирующие нули
Номер = стр.Значение;
Пока Лев(Номер,1)="0" Цикл
Номер = Прав(Номер,СтрДлина(Номер)-1);
КонецЦикла;
//запросом получаем всех партнеров с похожим кодом
Запрос = новый запрос;
Запрос.Текст = "ВЫБРАТЬ
| Партнеры.Ссылка КАК Ссылка,
| Партнеры.Код КАК Код
|ИЗ
| Справочник.Партнеры КАК Партнеры
|ГДЕ
| Партнеры.Код ПОДОБНО &Код";
Запрос.УстановитьПараметр("Код","%"+Номер);
Выборка = Запрос.Выполнить().Выбрать();
Пока выборка.Следующий() Цикл
//теперь убираем лидирующие нули у полученного кода
НомерКода = выборка.Код;
Пока Лев(НомерКода,1)="0" Цикл
НомерКода = Прав(НомерКода,СтрДлина(НомерКода)-1);
КонецЦикла;
//Если оба кода без нулей полностью идентичны, значит это нужный нам партнер
Если НомерКода = Номер Тогда
[Результат] = Выборка.Ссылка;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать
(3) [Результат] = Выборка.Ссылка;
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.
Если ЗначениеЗаполнено([Документ].Контрагент.ИНН)Тогда
Выборка = СОГЛОПТ.Выполнить().Выбрать();
Если выборка.Следующий() Тогда
[Результат] = Выборка.Ссылка;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот