Вывод контактной информации в ведомости взаиморасчетов по контрагентам

1. klygin 08.06.10 10:26 Сейчас в теме
Люди добрые нужен совет, начинаю первые шаги в 1С 8, столкнулся с проблемой, не могу добавить в ведомость по контрагентам контактную информацию, в частности Фактический адрес, в Универсальном отчете есть процедуры ДобавитьВТекстЗапросаКонтактнуюИнформацию и ДобавитьКонтактнуюИнформациюДляПоля. Но, ни где даже близко не нашел как использовать эти процедуры. Может кто сталкивался.
Помогите пожалуйста, очень надо!!!!!
http://infostart.ru/forum/forum14/topic/add/#postform
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Valerich 1634 10.06.10 10:29 Сейчас в теме
попытка разобраться привела к такому решению:

ДобавитьВТекстЗапросаКонтактнуюИнформацию(
	ТекстЗапроса, 
	ТаблицаПолей = Неопределено, 
	СтруктураПредставлениеПолей = Неопределено, 
	Параметры = Неопределено, 
	СоответствиеКонтактнойИнформацииИИзмерений = Неопределено, 
	СтруктураЗаменять = Неопределено) Экспорт
	
ТекстЗапроса - Тип Строка - текст запроса, который необходимо доработать для включения в него контактной информации

ТаблицаПолей - Таблица значений. Структура этой ТЗ:
	мТаблицаПолейКонтактнаяИнформация = Новый ТаблицаЗначений;
	мТаблицаПолейКонтактнаяИнформация.Колонки.Добавить("ПутьКДанным");   // описание поля запроса, для которого добавляется контактная информация
	мТаблицаПолейКонтактнаяИнформация.Колонки.Добавить("ИмяИзмерения");  // имя поля запроса, для которого добавляется контактная информация
	мТаблицаПолейКонтактнаяИнформация.Колонки.Добавить("Представление"); // представление поля, для которого добавляется контактная информация
	мТаблицаПолейКонтактнаяИнформация.Колонки.Добавить("ВидОбъекта");    // вид объекта-владельца контактной информации
	мТаблицаПолейКонтактнаяИнформация.Колонки.Добавить("ТипОбъекта");    // тип объекта-владельца контактной информации
	
	Содержит описание полей, для которых необходимо добавлять контактную информацию


СтруктураПредставлениеПолей - Тип Структура - описывает представления полей. Если не заданы, представления формируются по названиям полей. Ключ - имя поля, значение - представление

Параметры  - параметры построителя отчетов

СоответствиеКонтактнойИнформацииИИзмерений  - Соответствие

СтруктураЗаменять - Тип Структура
	Возможное наполнение:
		ПоляКонтактнаяИнформация = строка - строка в тексте запроса, которая будет заменена на список полей выборки контактной информации.
			 Если не задано, то используется "//ПОЛЯ_КОНТАКТНАЯИНФОРМАЦИЯ". Располагается в конце списка полей.
		ПсевдонимыКонтактнаяИнформация = строка - строка в тексте запроса, которая будет заменена на подзапрос выборка контактной информации.
			 Если не задано, то используется "//ПСЕВДОНИМЫ_КОНТАКТНАЯИНФОРМАЦИЯ"
		Соединения = строка - строка в тексте запроса, которая будет заменена на подзапрос выборки контактной информации.
			 Если не задано, то используется  "//КОНТАКТНАЯИНФОРМАЦИЯ_СОЕДИНЕНИЯ". Размещается в блоке ИЗ в конце всех таблиц.
		УсловияКонтактнаяИнформация = строка - строка в тексте запроса, которая будет заменена на условия выбора контактной информации.
			 Если не задано, то используется "//УСЛОВИЯ_КОНТАКТНАЯИНФОРМАЦИЯ". Размещается в блоке ГДЕ
		ИтогиКонтактнаяИнформация = строка - строка в тексте запроса, которая будет заменена на список полей, учатсвующих в итогах по контактной информации.
			 Если не задано, то используется "//ИТОГИ_КОНТАКТНАЯИНФОРМАЦИЯ". Размещается в блоке ИТОГИ
Показать
+
3. Valerich 1634 10.06.10 10:33 Сейчас в теме
далее взял один из отчетов, построенных на основании универсального отчета и набросал простенький отчет по продажам с добавлением КИ

	ТекстЗапроса = 
	"ВЫБРАТЬ
	|	ПродажиОбороты.Номенклатура,
	|	ПродажиОбороты.Контрагент,
	|	ПродажиОбороты.КоличествоОборот,
	|	ПродажиОбороты.СтоимостьОборот
	|	//ПОЛЯ_КОНТАКТНАЯИНФОРМАЦИЯ
	|{ВЫБРАТЬ
	|	Номенклатура.*,
	|	Контрагент.*,
	|	КоличествоОборот,
	|	СтоимостьОборот
	|	//ПОЛЯ_КОНТАКТНАЯИНФОРМАЦИЯ}
	|ИЗ
	|	РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , {(Контрагент).*, (Номенклатура).*}) КАК ПродажиОбороты
	|		//КОНТАКТНАЯИНФОРМАЦИЯ_СОЕДИНЕНИЯ
	|{ГДЕ
	|	ПродажиОбороты.Номенклатура.*,
	|	ПродажиОбороты.Контрагент.*,
	|	ПродажиОбороты.КоличествоОборот,
	|	ПродажиОбороты.СтоимостьОборот
	|	//УСЛОВИЯ_КОНТАКТНАЯИНФОРМАЦИЯ}
	|{УПОРЯДОЧИТЬ ПО
	|	Номенклатура.*,
	|	Контрагент.*,
	|	КоличествоОборот,
	|	СтоимостьОборот}
	|ИТОГИ
	|	СУММА(КоличествоОборот),
	|	СУММА(СтоимостьОборот)
	|	//ИТОГИ_КОНТАКТНАЯИНФОРМАЦИЯ
	|ПО
	|	ОБЩИЕ
	|{ИТОГИ ПО
	|	Номенклатура.*,
	|	Контрагент.*}";
	                                                     //ПутьКДанным,                 ИмяИзмерения, Представление, ВидОбъекта, ТипОбъекта, ТаблицаПолей 
	УниверсальныйОтчет.ДобавитьКонтактнуюИнформацияДляПоля("ПродажиОбороты.Контрагент", "Контрагент", "Контрагент", Перечисления.ВидыОбъектовКонтактнойИнформации.Контрагенты, "Справочник.Контрагенты" );
	
//	СтруктураПредставлениеПолей = Новый Структура;
	СоответствиеКонтактнойИнформацииИИзмерений = Новый Соответствие;
	
	УниверсальныйОтчет.ДобавитьВТекстЗапросаКонтактнуюИнформацию(
		ТекстЗапроса, 
		, 
		, 
		УниверсальныйОтчет.ПостроительОтчета.Параметры, 
		СоответствиеКонтактнойИнформацииИИзмерений);

	УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
Показать


а все остальное как обычно - установка псевдонимов, показателей, группировок и т.п.
+
4. Valerich 1634 10.06.10 10:33 Сейчас в теме
теперь в отчете можно в качестве дополнительных полей выводит любую контактную информацию

PS забыл описать функцию "ДобавитьКонтактнуюИнформацияДляПоля" - она позволяет заполнить таблицу "ТаблицаПолей", если ее не передавать извне формируя вручную, а использовать ту, что уже есть в универсальном отчете.

PPS если надо, могу выслать готовый отчет с этим примером. Проверял на УТ 10.3.9.4
+
7. sc_digital 2 01.11.12 22:10 Сейчас в теме
(4) Валерий Дубовой,
Спасибо огромное за подсказку и листинг кодов.
А я башку ломала два дня с этой контактной информацией.
Но благодаря вам сделала таки за несколько часов отчет,
хотя думала забить уже на него, на гребаный.... :)))
+
5. klygin 14.06.10 21:31 Сейчас в теме
Спасибо огромное :D Все получилось.
Если не сложно, можете объяснить, как еще нумерацию добавить, в отчет который строится на основе универсального, с СКД получается, а вот через универсальный нет.
+
6. Valerich 1634 15.06.10 06:51 Сейчас в теме
где-то решения мелькали, но это такой гемор, даже не стал запоминать. Можно поискать здесь, можно на мисте.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот