Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 15:58

Получить реквизит документа в другом документе

Автор JOG, 24 апр 2015, 09:45

0 Пользователей и 1 гость просматривают эту тему.

JOG

Уважаемые формучане, прошу помощи.
Никак не могу получить реквизит документа в другом документе.
Мне надо вытащить реквизиты табличной части из Док2 и использовать их в Док1. Выдаётся ощибка "Индекс находится за границами массива". Ок. Решил попробовать без табличной части - таже ошибка.
Привожу код в форме Док1:

&НаСервере
Функция ПолучитьСуммуДолгаНаСервере(СписокДолжников)
ДолгЗапрос = Новый Запрос;
ДолгЗапрос.Текст =
"ВЫБРАТЬ
| СписокДолжников.СуммаДолга
|ИЗ
| Документ.СписокДолжников КАК СписокДолжников
|ГДЕ
| СписокДолжников.Ссылка = &Ссылка";
ДолгЗапрос.УстановитьПараметр("Ссылка", СписокДолжников);
РезультатТабЗначений = ДолгЗапрос.Выполнить().Выгрузить();
Возврат РезультатТабЗначений[0].СуммаДолга;
КонецФункции

&НаКлиенте
Процедура ДолжникПриИзменении(Элемент)
Объект.СуммаДолга = ПолучитьСуммуДолгаНаСервере(Объект.ДолжникФамилия);
КонецПроцедуры


или подскажите как правильно получить реквизиты ТЧ Док2 при изменении фамилии должника в Док1?
P.S.: Тип у ФамилииДолжника ссылка на справочник Должники.

vitasw

Отладчик! первый товарищ и брат. В списке должников такой фамилии нет.

cska-fanat-kz

1.
Цитата: JOG от 24 апр 2015, 09:45РезультатТабЗначений = ДолгЗапрос.Выполнить().Выгрузить(); Возврат РезультатТабЗначений[0].СуммаДолга;

в этом месте надо как минимум проверить если результат запроса - пустой.

2. что-то у вас непонятно: в функцию отправляете значение типа
Цитата: JOG от 24 апр 2015, 09:45Тип у ФамилииДолжника ссылка на справочник Должники.
а в запросе его потом сравниваете со ссылкой НА ДОКУМЕНТ...

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

JOG

Цитата: cska-fanat-kz от 24 апр 2015, 11:16
1.
Цитата: JOG от 24 апр 2015, 09:45РезультатТабЗначений = ДолгЗапрос.Выполнить().Выгрузить(); Возврат РезультатТабЗначений[0].СуммаДолга;

в этом месте надо как минимум проверить если результат запроса - пустой.

2. что-то у вас непонятно: в функцию отправляете значение типа
Цитата: JOG от 24 апр 2015, 09:45Тип у ФамилииДолжника ссылка на справочник Должники.
а в запросе его потом сравниваете со ссылкой НА ДОКУМЕНТ...

Никак не получается у меня решить задачу.
В общем поясню еще раз.
Есть справочник Должники, где реквизиты Фамилия, Имя, Отчество, паспортные данные.
Есть документ СписокДолжников с табличной частью, где реквизиты ТабЧасти ФамилияДолжника (Тип:СправочникСсылка.Должники) и СуммаДолга (Тип: Число)
Есть документ Претензия, которая формируется для одного должника из СпискаДолжников, где реквизиты: СписокДолжников(Тип:ДокументСсылка.СписокДолжников), Фамилия, Имя, Отчество, СуммаДолга.
Вопрос: 1) как получить в Документе Претензия, в реквизите СуммаДолга, значение прописанное в ТЧ Документа СписокДолдников.
Или
2) Как получить список фамилий из ТЧ Список Должников, но, чтобы они были в виде списка в поле Фамилия Претензия, при измененнии Реквизита СписокДолжников.

Форма документа Претензия

Документ СписокДолжников


Без табличной части всё супер, обычным запросом делаю и всё ок. А вот чтобы вытащить значение из ТЧ никак не разберусь:(

cska-fanat-kz

Заводим оборотный (хотя не обязательно) регистр накопления Долги с измерением Должник и ресурсом Сумма
и складываем в него значения документом СписокДолжников...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

JOG

Цитата: cska-fanat-kz от 28 апр 2015, 03:25
Заводим оборотный (хотя не обязательно) регистр накопления Долги с измерением Должник и ресурсом Сумма
и складываем в него значения документом СписокДолжников...
Но проблема в том, что мне необходимо значение СуммыДолга для определенного Должника исользовать в Претензии при фомировании макета. Поэтому мне нужно получить из ТЧ определнную СуммуДолга, для опрделенного Должника.
То есть я в Претензии выбираю как бы из списка ТЧ фамилии, а в другом поле СуммаДолга в Претензии, я должен получить соответствующее значение суммы и затем использовать её в макете. Это реально? То есть на клиенте при изменении фамилии, нужно получить сумму долга. Без ТЧ, всё прекрасно, но для одного должника, а вот получить список всех.. может выборкой как то? никак не сформирую правильно запрос

cska-fanat-kz

а если у вас 2 документа СписокДолжников?
1 док: Иванов 1000
2ой док: Иванов 1000

в претензию должно попасть Иванов 2000?
или каждому Списку соответствует своя Претензия?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

JOG

Раз в неделю будет забиваться новый список и ,соответственно, новая претензия
Добавлено: 28 апр 2015, 09:01


Цитата: cska-fanat-kz от 28 апр 2015, 08:46
а если у вас 2 документа СписокДолжников?
1 док: Иванов 1000
2ой док: Иванов 1000

в претензию должно попасть Иванов 2000?
или каждому Списку соответствует своя Претензия?
Претензия будет формироваться по последнему документу СпискаДолжников.

cska-fanat-kz

Тогда запрос к ТЧ делаете и все
"ВЫБРАТЬ
    |    СписокДолжниковТЧ.СуммаДолга
    |ИЗ
    |    Документ.СписокДолжников.ИМЯТЧ КАК СписокДолжниковТЧ
    |ГДЕ
    |    СписокДолжниковТЧ.Должник = &Ссылка";
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

JOG

Цитата: cska-fanat-kz от 28 апр 2015, 09:08
Тогда запрос к ТЧ делаете и все
"ВЫБРАТЬ
    |    СписокДолжниковТЧ.СуммаДолга
    |ИЗ
    |    Документ.СписокДолжников.ИМЯТЧ КАК СписокДолжниковТЧ
    |ГДЕ
    |    СписокДолжниковТЧ.Должник = &Ссылка";
а в этом случае у меня опять-таки получается первое значение фамилии из первой строки ТЧ, а возможно ли в поле получить список фамилий из ТЧ?

&НаСервере
Функция ПолучитьДолжникаНаСервере(СписокДолжников)
ДолгЗапрос = Новый Запрос;
ДолгЗапрос.Текст =
"ВЫБРАТЬ
| СписокДолжниковДолжники.ДолжникФамилия
|ИЗ
| Документ.СписокДолжников.Должники КАК СписокДолжниковДолжники
|ГДЕ
| СписокДолжниковДолжники.Ссылка = &Ссылка";
ДолгЗапрос.УстановитьПараметр("Ссылка", СписокДолжников);
РезультатТабЗначений = ДолгЗапрос.Выполнить().Выгрузить();
Возврат РезультатТабЗначений[0].ДолжникФамилия;
КонецФункции


&НаКлиенте
Процедура СписокДолжниковПриИзменении(Элемент)
Объект.ФамилияДолжника= ПолучитьДолжникаНаСервере(Объект.СписокДолжников);
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск