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

Автор Тема: Заполнить договор  (Прочитано 13077 раз)

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

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Здравствуйте, есть обработка, которая вызывается из документа Реализация товаров и услуг. Эта обработка создает на основании этого документа Поступление товаров и услуг. Заказчику нужно, чтобы в открываемом документе Поступление товаров и услуг Организация бралась из документа Реализация товаров и услуг из реквизита Контрагент, а контрагентом становился реквизит организация.Т.е. например в Реализации товаров и услуг организация - Альфа, контрагент -Бетта. А в Поступлении товаров и услуг наоборот - Организация - Бетта, а контрагент Альфа.
Этот момент решен.
Сейчас есть одна проблема с договором. Нужно, чтобы в документ поступление товара в реквизит договор подставлялся договор с тем же номером, только вид договора не с покупателем, а с поставщиком. Такой договор есть. Там есть 2 разных договора с одним номером.
Это надо с помощью запроса делать?


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6571
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Да, проще всего написать запрос, где отобрать договоры, по удовлетворяющим вас параметрам.

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Почему то не подставляется договор.
Вот мой код.
Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ДоговорыКонтрагентов.ВидДоговора,
      |   ДоговорыКонтрагентов.Наименование КАК Наименование
      |ИЗ
      |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
      |ГДЕ
      |   ДоговорыКонтрагентов.Наименование = &Договор
      |   И ДоговорыКонтрагентов.ВидДоговора = ""С поставщиком""";

   Запрос.УстановитьПараметр("Договор", Объект.ДоговорКонтрагента);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ДокПоступление.ДоговорКонтрагента = ВыборкаДетальныеЗаписи.Наименование;

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
сравните, какой тип данных у ДокПоступление.ДоговорКонтрагента и у ВыборкаДетальныеЗаписи.Наименование

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Сейчас посмотрю. Еще когда в консоле смотрю результат запроса, то без условий есть результат, если добавляю, то пусто..
Добавлено: 17 Окт 2012, 23:37

ДокПоступление.ДоговорКонтрагента это ссылка
ВыборкаДетальныеЗаписи.Наименование это строка
Так?

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ДоговорыКонтрагентов.ВидДоговора,
      |   ДоговорыКонтрагентов.Наименование КАК Наименование
      |ИЗ
      |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
      |ГДЕ
      |   ДоговорыКонтрагентов.Наименование = &Договор
      |   И ДоговорыКонтрагентов.ВидДоговора = ""С поставщиком""";

   Запрос.УстановитьПараметр("Договор", Объект.ДоговорКонтрагента);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   ДокПоступление.ДоговорКонтрагента = ВыборкаДетальныеЗаписи.Наименование;
//Будем отлаживать....
//А где же ты моя ошибка???
Если Не ЗначениеЗаполнено(ДокПоступление.ДоговорКонтрагента) Тогда
//Накосячили.....
Сообщить("Накосячили ищем ошибку....")
ТипДок = ТипЗнч(ДокПоступление.ДоговорКонтрагента);
ТипВыб = ТипЗнч(ВыборкаДетальныеЗаписи.Наименование);
Сообщить("Ошибка в ТИПЕ? ОТВЕТ: "+формат(ТипДок<>ТипВыб,"БЛ=Нет; БИ=Да"));
Если ТипДок<>ТипВыб Тогда
Сообщить("Тип документа = "+ТипДок);
Сообщить("Тип выборки запроса = "+ТипВыб);
Сообщить("Разве можно в тип <"+ТипДок+"> записать вот этот тип <"+Типвыб+"> ?????????");
Сообщить("Теперь понятно где косяк?");
КонецЕсли;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Блин... Долго писал  :D
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн AlenkaInt

  • ****
  • Сообщений: 266
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-08-21
  • Сайт: 
  • Профессия: Программист 1С
Это было круто!
Добавлено: 18 Окт 2012, 00:06

Переиграла, подставляется договор, но вообще не понятно откуда такое название.. Вообще из другой оперы.
Вот запрос:
"ВЫБРАТЬ
      |   ДоговорыКонтрагентов.ВидДоговора,
      |   ДоговорыКонтрагентов.Наименование
      |ИЗ
      |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
      |ГДЕ
      |   ДоговорыКонтрагентов.ВидДоговора = ""С поставщиком""
      |   И ДоговорыКонтрагентов.Наименование = &Договор";

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

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Это элементарное понимание что ТИП переменной должен быть всегда равен ТИПУ РЕКВИЗИТА, если не равен то переменную нужно привести к соответствующему ТИПУ реквизита
НаименованиеДоговора = "Новый договор №1"; //Имеем только строку - что делать если нету типа СправочникСсылка.Договоры ??? Надо найти в базе ССЫЛКУ
Док.РеквизитДоговора = Справочники.Договоры.НайтиПоНаименованию(НаименованиеДоговора); //Метод НайтиПоНаименованию всегда вернет тип СправочникСсылка.Договоры (а значение может быть и пустое - нету в базе такого договора)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Круто - но опять не совсем верно
"ВЫБРАТЬ
      |   ДоговорыКонтрагентов.ВидДоговора, //ЭТО вообще лишнее!!! Зачем вам это поле??? Где вы его используете?
      |   ДоговорыКонтрагентов.Наименование, //Зачем вам наименование - чтобы по нему потом искать? Так вы сейчас что делаете?
      |   ДоговорыКонтрагентов.Ссылка Как ДОГОВОР //Вот что нужно тащить! ССЫЛКУ
      |ИЗ
      |   Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
      |ГДЕ
      |   ДоговорыКонтрагентов.ВидДоговора = ""С поставщиком"" //Тут лучше использовать перечисление Пример:ДоговорыКонтрагентов.ВидДоговора = Значение(Перечисление.<ИмяПеречисления>.<ИмяЗначенияперечисления>)
      |   И ДоговорыКонтрагентов.Наименование = &Договор";

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
102 Сообщений
AIFrame
86 Сообщений
alex0402
34 Сообщений
pavl_vs
23 Сообщений
kiksi
19 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
Norfolk
15 Сообщений
LexaK
13 Сообщений
Artibon
13 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal