Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 10:02
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Добавление в адреса из под.спр. в торг-12  (Прочитано 2922 раз)

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

Оффлайн plast

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Что нужно добавить в код чтобы, если у текущего клиента есть торговая точка, то адрес брался этой торговой точки, если торговой точки нет, то адрес брался бы из основной карточки клиента, если адреса нет, то просто пустые значения. Адрес торговой точки это подчиненный справочник, причём у неё есть не только адрес, есть класс торговой точки, маршрут доставки, контактное лицо и т.д.

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


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Что нужно добавить в код

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

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



Оффлайн plast

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

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

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
онкретно в строке "Если ПустоеЗначение(Контрагент.ПодчиненныеСправочники.ТорговыеТочкиКлиента)=0 Тогда"

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

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

Оффлайн plast

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Цитировать
"ПодчиненныеСправочники" - это что? вы просто с неба взяли это слово или это действительно реквизит контрагента?

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

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

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Подчиненые справочники это если 2 кнопкой на клиента нажать

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

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

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

Оффлайн plast

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

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

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Операции->Справочники->ТорговыеТочкиКлиента, но когда ввожу этот справочник в код, все равно выходит ошибка "Неудачная попытка создания объекта (Справочник.Торговые Точки Клиента)"
"Открыть конфигурацию" 1С я зайти не могу, т.к. он запоролен и пароля у меня нет, а наш программист куда-то потерялся, как мне можно посмотреть какой идентификатор присвоен этому справочнику? =(((((

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

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

Оффлайн plast

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Вы в коде так же через пробел писали?
Справочник.Торговые Точки Клиента
И через пробел и без пробелов) никак не получается, окончания тоже по разному менял.

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

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Вы в коде так же через пробел писали?
Справочник.Торговые Точки Клиента
И через пробел и без пробелов) никак не получается, окончания тоже по разному менял.

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


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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
136 Сообщений
AIFrame
66 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 756
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal