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