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

Автор Тема: Не выбирается элемент по реквизиту типа Справочник  (Прочитано 1860 раз)

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

Оффлайн SecretSilent

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-12-14
  • Сайт: 
  • Профессия: Ученик 1С
Тема: АВС-анализ.
В документе идёт изменение статусов покупателей со старого на новый. Соответственно, затем нужно провести документ и тем самым изменить статус в самом справочнике. Делаю реквизит в справочнике Покупатели Статус (тип Справочник.Статусы) периодическим и изменяемым документами. При выборе названия организации-покупателя надо, чтобы отображался старый статус на форме.
Пишу процедуру в модуле формы документа:

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

Так вот. При попытке вывести найденный статус выводится НеизвестныйОбъект. Дата не высвечивается.
А если делаю реквизит Статус непериодическим, то высвечивается правильно... Но тогда проводку не сделать.
Помогите, пожалуйста, подскажите, что не так? я в 1С пока новичок.

Текст процедуры проводки:
Процедура ОбработкаПроведения()

   Если СтарыйСтатус = НовыйСтатус Тогда
      Предупреждение("Проводка невозможна, т.к. старый и новый статусы одинаковы!");
      НеПроводитьДокумент();
   КонецЕсли;     
   //иначе
   Спр = СоздатьОбъект("Справочник.Покупатели");
   Спр.НайтиПоНаименованию(Покупатель.Наименование);
   УстановитьРеквизитСправочника(Спр, "Статус", НовыйСтатус, ДатаДок,,,);

КонецПроцедуры


Оффлайн nicotin

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-27
  • Сайт: 
  • Профессия: Программист 1С
Поскольку процедура расположена в модуле формы документа, к реквизитам можно обращаться напрямую. Следовательно,3 и 4 строки надо убрать, 6 и 7 записать в виде:
СтарыйСтатус = СпрПокуп.Статус.Получить(ДатаДок-1);
// -1 на случай повторного перепроведения документа
ДатаИзменения = РабочаяДата() //используют чаще, чем ТекущаяДата()


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

* Последние вакансии

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal