Имя: Пароль:
1C
1С v8
Несколько видов адресов доставки
,
0 Смертник
 
18.03.13
10:31
У контрагента несколько адресов доставки, запрос построен по контактной информации с указание контрагента как грузополучателя и Виду - Адрес доставки. Помогите организовать условие что если Количество записей больше 1 тогда долден появиться список с Адресами поставки.
Если Доставка.Количество() > 1 Тогда
   Как вот тут правильно написать?                    
                   Иначе
                       НовыйРеализация.АдресДоставки                = Доаставка.АдресДоставки;
                   КонецЕсли;
1 Смертник
 
18.03.13
10:39
Помогите плиз
2 Галахад
 
гуру
18.03.13
10:39
Доаставка.ВыбратьЭлемент(...)
3 ZaprosMan
 
18.03.13
10:43
Нужен первый из списка значений?
4 Смертник
 
18.03.13
10:47
нет все, нужно чтобы если строк из запроса больше одной выводился на экран список Адресов
5 Галахад
 
гуру
18.03.13
10:50
Кстате, а "Доставка" это что из "Доставка.Количество()"?
6 ZaprosMan
 
18.03.13
10:50
Для выбора пользователем?
7 ZaprosMan
 
18.03.13
10:51
Смотри СП СписокЗначений.ВыбратьЭлемент
8 Смертник
 
18.03.13
11:37
Доставка это

Запрос = Новый Запрос;
                   Запрос.Текст =
                       "ВЫБРАТЬ
                       |    КонтактнаяИнформация.Представление КАК АдресДоставки
                       |ИЗ
                       |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |ГДЕ
                       |    КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента)
                       |    И КонтактнаяИнформация.Объект.Ссылка = &Грузополучатель";
                   Запрос.УстановитьПараметр("Грузополучатель", Стр.ДокументРеализация.Грузоотправитель);
                   Доставка = Запрос.Выполнить().Выгрузить();
9 ZaprosMan
 
18.03.13
11:44
Ну и? ТЗ в список и выводи пользователю.

Синтаксис:

ВыбратьЭлемент(<Заголовок>, <Элемент>)
Параметры:

<Заголовок> (необязательный)

Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка
<Элемент> (необязательный)

Тип: ЭлементСпискаЗначений.
Элемент, на который следует изначально спозиционировать список значений при интерактивном выборе. Если значением параметра не является элемент списка значений, входящий в данный список, позиционирования не произойдет.
Возвращаемое значение:

Тип: ЭлементСпискаЗначений; Неопределено.
Если пользователь отказался от выбора, возвращает Неопределено.
Описание:

Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Пример:

ВыбЭлемент = СписокТиповЦен.НайтиПоЗначению(ВыбЗначение);
ВыбЭлемент = СписокТиповЦен.ВыбратьЭлемент("Выберите тип цен.", ВыбЭлемент);
Если ВыбЭлемент = Неопределено Тогда
   Сообщить("Не выбран тип цен.");
Иначе
   ВыбЗначение = ВыбЭлемент.Значение;
КонецЕсли;
10 Djonny
 
18.03.13
11:51
из результат запроса формируй список значений.
и выводи его на форму. для возможности выбора пользователем.
11 Смертник
 
18.03.13
11:54
ВыбЗначение - это непосредственно адреса доставки?
а список типов цен это запрос сам так?
12 cw014
 
18.03.13
11:58
Запрос = Новый Запрос;
                   Запрос.Текст =
                       "ВЫБРАТЬ
                        |    КонтактнаяИнформация.Представление КАК АдресДоставки
                        |ИЗ
                        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |ГДЕ
                       |    КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента)
                        |    И КонтактнаяИнформация.Объект.Ссылка = &Грузополучатель";
                   Запрос.УстановитьПараметр("Грузополучатель", Стр.ДокументРеализация.Грузоотправитель);
                   СписокАдресов = Новый СписокЗначений;
                   СписокАдресов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("АдресДоставки"));
ВыбЗначение = СписокАдресов.ВыбратьЭлемент("Твой заголовок");
13 cw014
 
18.03.13
11:59
Последняя строка так должна быть заменена на:
ВыбЭлемент = СписокАдресов.ВыбратьЭлемент("Выберите тип цен.", ВыбЭлемент);
Если ВыбЭлемент = Неопределено Тогда
   Сообщить("Не выбран тип цен.");
Иначе
   АдресДоставки = ВыбЭлемент.Значение;
КонецЕсли;
14 cw014
 
18.03.13
11:59
Млин
15 cw014
 
18.03.13
11:59
Вот так:
ВыбЭлемент = СписокАдресов.ВыбратьЭлемент("Выберите тип цен.");
Если ВыбЭлемент = Неопределено Тогда
   Сообщить("Не выбран тип цен.");
Иначе
   АдресДоставки = ВыбЭлемент.Значение;
КонецЕсли;
16 cw014
 
18.03.13
11:59
Текст сам поменяешь
17 Смертник
 
18.03.13
12:11
а условие на то что элементов больше 1 где поставить?
18 cw014
 
18.03.13
12:13
(17) Млин, тебе весь код переписывать что ли? С тебя итак 100 рублев за практически реализованную задачу
19 cw014
 
18.03.13
12:17
Запрос = Новый Запрос;
                   Запрос.Текст =
                       "ВЫБРАТЬ
                        |    КонтактнаяИнформация.Представление КАК АдресДоставки
                        |ИЗ
                        |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                       |ГДЕ
                       |    КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресДоставкиКонтрагента)
                        |    И КонтактнаяИнформация.Объект.Ссылка = &Грузополучатель";
                   Запрос.УстановитьПараметр("Грузополучатель", Стр.ДокументРеализация.Грузоотправитель);
                   СписокАдресов = Новый СписокЗначений;
                   СписокАдресов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("АдресДоставки"));

Если СписокАдресов.Количество() = 1 тогда
  АдресДоставки = СписокАдресов[0].Значение;
ИначеЕсли СписокАдресов.Количество() > 0 Тогда
ВыбЭлемент = СписокАдресов.ВыбратьЭлемент("Твой заголовок");
Если ВыбЭлемент = Неопределено Тогда
   Сообщить("Не выбран адрес. Выбери себе адрес. Ну выбери!! Ну пожалуйста!! :))");
Иначе
   АдресДоставки = ВыбЭлемент.Значение;
КонецЕсли;
Ошибка? Это не ошибка, это системная функция.