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

Добавление в адреса из под.спр. в торг-12

Автор plast, 24 мар 2014, 09:07

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

plast

Что нужно добавить в код чтобы, если у текущего клиента есть торговая точка, то адрес брался этой торговой точки, если торговой точки нет, то адрес брался бы из основной карточки клиента, если адреса нет, то просто пустые значения. Адрес торговой точки это подчиненный справочник, причём у неё есть не только адрес, есть класс торговой точки, маршрут доставки, контактное лицо и т.д.

Если ПустоеЗначение(Грузополучатель)=1 Тогда
ПолучательНаименование="";
ПолучательАдрес="";
ПолучательОКПО="";
ПолучательТелефоны="";
ПолучательРеквизиты="";
Иначе
ПолучательНаименование=СокрЛП(Грузополучатель.ПолноеНаименование)+
?(ПустоеЗначение(Грузополучатель.ИНН)=0, ", ИНН " + СокрЛП(Грузополучатель.ИНН), "");
ПолучательАдрес=глПредставлениеАдреса(Грузополучатель.ПочтовыйАдрес);
ПолучательОКПО="";
ПолучательТелефоны=СокрЛП(Грузополучатель.Телефоны);
Если (ПустоеЗначение(Грузополучатель.ОсновнойСчет)=1) Тогда
ПолучательРеквизиты="";
Иначе
ПолучательРеквизиты="р/с "+Грузополучатель.ОсновнойСчет.Номер + " в " + Грузополучатель.ОсновнойСчет.БанкОрганизации+
?(ПустоеЗначение(Грузополучатель.ОсновнойСчет.БанкОрганизации.Код) = 0, ", БИК " + Грузополучатель.ОсновнойСчет.БанкОрганизации.Код,"")+
?(ПустоеЗначение(Грузополучатель.ОсновнойСчет.БанкОрганизации.КоррСчет) = 0, ", корр/с " + Грузополучатель.ОсновнойСчет.БанкОрганизации.КоррСчет,"");
КонецЕсли;
КонецЕсли;
Параметры.ДобавитьЗначение(ПолучательНаименование,"ПолучательНаименование");
Параметры.ДобавитьЗначение(ПолучательАдрес,"ПолучательАдрес");
Параметры.ДобавитьЗначение(ПолучательОКПО,"ПолучательОКПО");
Параметры.ДобавитьЗначение(ПолучательТелефоны,"ПолучательТелефоны");
Параметры.ДобавитьЗначение(ПолучательРеквизиты,"ПолучательРеквизиты");

Herby

Цитата: plast от 24 мар 2014, 09:07Что нужно добавить в код

Нужно добавить соответствующее условие

Если торговая точка есть (поиск подчиненных элементов - см. в справке 1с, начните с изучения метода ИспользоватьВладельца()), то брать адрес из найденной точки, иначе из карточки, иначе выводите пустое значение.



plast

Вот как я пытаюсь
Если ПустоеЗначение(Контрагент.ПодчиненныеСправочники.ТорговыеТочкиКлиента)=0 Тогда
ПолучательНаименование=СокрЛП(Грузополучатель.Полноенаименование)+
?(ПустоеЗначение(Грузополучатель.ИНН)=0, ", ИНН " + СокрЛП(Грузополучатель.ИНН), "");
Набор=СоздатьОбъект("Справочник.ТорговыеТочкиКлиента");
        Набор.ИспользоватьВладельца(Контрагент);
        Набор.ВыбратьЭлементы();
        Пока Набор.ПолучитьЭлемент()=1 Цикл
    ПолучательАдрес=(""+Набор.ТекущийЭлемент());
    КонецЦикла;
ПолучательОКПО="";
ПолучательТелефоны=СокрЛП(Грузополучатель.Телефоны);
Если (ПустоеЗначение(Грузополучатель.ОсновнойСчет)=1)Тогда
ПолучательРеквизиты="";
Иначе
ПолучательРеквизиты="р/с "+Грузополучатель.ОсновнойСчет.Номер + " в " + Грузополучатель.ОсновнойСчет.БанкОрганизации+
?(ПустоеЗначение(Грузополучатель.ОсновнойСчет.БанкОрганизации.Код) = 0, ", БИК " + Грузополучатель.ОсновнойСчет.БанкОрганизаци.Код,"")+
?(ПустоеЗначение(Грузополучатель.ОсновнойСчет.БанкОрганизации.КоррСчет) = 0, ", корр/с " + Грузополучатель.ОсновнойСчет.БанкОрганизации.КоррСчет,"");
КонецЕсли;
КонецЕсли;


Выдаёт ошибку что справочник не найден. Я не знаю как добавить чтобы выборка шла из этого справочника.
Конкретно в строке "Если ПустоеЗначение(Контрагент.ПодчиненныеСправочники.ТорговыеТочкиКлиента)=0 Тогда", а лучше чтобы проверка шла прямо по адресу торговой точки (Адрес Фактический)
Работать с кодами начал пару дней назад, поэтому объясните по возможности более подробно.
Спасибо

Herby

Цитата: plast от 24 мар 2014, 10:36онкретно в строке "Если ПустоеЗначение(Контрагент.ПодчиненныеСправочники.ТорговыеТочкиКлиента)=0 Тогда"

"ПодчиненныеСправочники" - это что? вы просто с неба взяли это слово или это действительно реквизит контрагента?

У вас ТорговыеТочкиКлиента как связаны с контрагентом? честной подчиненностью (поле "Подчинен" заполнен в окне настроек справочника) или в карточке контрагента у вас есть реквизит типа "ТорговыеТочкиКлиента"?

plast

Цитировать
"ПодчиненныеСправочники" - это что? вы просто с неба взяли это слово или это действительно реквизит контрагента?

У вас ТорговыеТочкиКлиента как связаны с контрагентом? честной подчиненностью (поле "Подчинен" заполнен в окне настроек справочника) или в карточке контрагента у вас есть реквизит типа "ТорговыеТочкиКлиента"?

Подчиненые справочники это если 2 кнопкой на клиента нажать, там есть "подчиненный справочник", далее там есть справочники: торговые точки клиента, документы клиента и т.д.
В выбираю торговые точки клиента, там есть 3 колонки наименование, адрес, код.
В карточке контрагента есть вкладка Торговые Точки, там можно добавить торговою точку, указать контактное лицо, телефон, адрес, агента и т.д.

Herby

Цитата: plast от 24 мар 2014, 12:10Подчиненые справочники это если 2 кнопкой на клиента нажать

Я имел ввиду связку:  Контрагент.ПодчиненныеСправочники
через точку можно указывать только реквизиты справочника, а "ПодчиненныеСправочники" - это не реквизит справочника. В общем, строка где у вас ошибка - она и не нужна.

у вас должно быть приблизительно так:


Набор=СоздатьОбъект("Справочник.ТорговыеТочкиКлиента");
Набор.ИспользоватьВладельца(Контрагент);
Набор.ВыбратьЭлементы();
Если Набор.ПолучитьЭлемент()=1 Тогда // есть торговая точка
// берем адрес из торговой точки
Иначе
// берем адрес из карточки контрагента
КонецЕсли;


plast

Цитата: Herby от 24 мар 2014, 12:45у вас должно быть приблизительно так:
У меня получилось так:
Набор=СоздатьОбъект("Справочник.ТорговыеТочки");
        Набор.ИспользоватьВладельца(Грузополучатель);
        Набор.ВыбратьЭлементы();
        Если Набор.ПолучитьЭлемент()=1 Тогда // есть торговая точка
            ПолучательАдрес=(""+Набор.ТекущийЭлемент());            // берем адрес из торговой точки
        Иначе
        ПолучательАдрес=глПредставлениеАдреса(Грузополучатель.ПочтовыйАдрес);
КонецЕсли;


Код работает, но не совсем как нужно, он действительно берёт из справочника "ТорговыеТочки" но это не тот справочник! У нас есть наш справочник "ТорговыеТочки" с нашими торговыми точками, сейчас посмотрел Операции->Справочники->ТорговыеТочкиКлиента, но когда ввожу этот справочник в код, все равно выходит ошибка "Неудачная попытка создания объекта (Справочник.Торговые Точки Клиента)"
"Открыть конфигурацию" 1С я зайти не могу, т.к. он запоролен и пароля у меня нет, а наш программист куда-то потерялся, как мне можно посмотреть какой идентификатор присвоен этому справочнику? =(((((

Herby

Цитата: plast от 24 мар 2014, 15:14Операции->Справочники->ТорговыеТочкиКлиента, но когда ввожу этот справочник в код, все равно выходит ошибка "Неудачная попытка создания объекта (Справочник.Торговые Точки Клиента)"
"Открыть конфигурацию" 1С я зайти не могу, т.к. он запоролен и пароля у меня нет, а наш программист куда-то потерялся, как мне можно посмотреть какой идентификатор присвоен этому справочнику? =(((((

я что-то не пойму. если конфигурация под паролем, то как вы в коде изменения вносите?
в гугле поищите - быстро найдете ломалку паролей

Вы в коде так же через пробел писали?
Справочник.Торговые Точки Клиента

plast

Цитата: Herby от 24 мар 2014, 15:28Вы в коде так же через пробел писали?
Справочник.Торговые Точки Клиента
И через пробел и без пробелов) никак не получается, окончания тоже по разному менял.

К конфигуратор я могу заходить, код менять и т.д. а вот "открыть конфигурацию" запаролено, отладчик тоже под паролем, искал как сломать пароль, не стал рисковать) вдруг хана) ищу нового программиста.

Herby

Цитата: plast от 24 мар 2014, 15:34
Цитата: Herby от 24 мар 2014, 15:28Вы в коде так же через пробел писали?
Справочник.Торговые Точки Клиента
И через пробел и без пробелов) никак не получается, окончания тоже по разному менял.

К конфигуратор я могу заходить, код менять и т.д. а вот "открыть конфигурацию" запаролено, отладчик тоже под паролем, искал как сломать пароль, не стал рисковать) вдруг хана) ищу нового программиста.


можно написать внешний отчет по метаданным, который выдаст список справочников

Теги:

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

Рейтинг@Mail.ru

Поиск