Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0
// =============================== Процедура ИзмКонтрагент() Если Заказ.Выбран()=1 Тогда глКомментарий("Контрагента нужно изменять в заказе!",1,,"!"); Контрагент = Заказ.Контрагент; Возврат; КонецЕсли; Если Контрагент.Выбран() = 1 Тогда ВидТорговли = Контрагент.ВидТорговли; Если Контрагент.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоДоговорам Тогда Заказ = Контрагент.БазДоговор; КонецЕсли; УстСуммаО(); Иначе ВидТорговли = Перечисление.ВидыТорговли.Предоплата; Заказ = 0; КонецЕсли; ИзмВидТорговли(); КонецПроцедуры
// =============================== Процедура ИзмЗаказ() глВыбратьЗаказ(Заказ,Контрагент,СчетКонтрагента,Контекст); Если Заказ.Выбран() = 1 Тогда Попытка Валюта = Заказ.Валюта; Исключение Валюта = Гривня; КонецПопытки; КонецЕсли; ИзмВалюта(); УстСуммаО(); КонецПроцедуры
// ===============================
При создании нового документа - после выбора контрагента должен подтянуться нужный Договор (заказ) нужной фирмой. Пример у контрагента есть 4 договора от разных фирм 1 -от фирмы ПП Пупкин 2 -от фирмы ПП Васечкин 3 -от фирмы ПП Иванова 4 -от фирмы ПП Филимонова Создаю документ от фирмы ПП Иванова , а в справочнике контрагента по умолчании стоит базДоговор ПП Пункин, то подтягивается договор тот который по умолчаниию Помогите пожалуйста дописать проверку договора по выбранной фирме.
Группа: Пользователи
Сообщений: 162
Из: Украина
Спасибо сказали: 39 раз
Рейтинг: 36
inna.innainna84 @ Сегодня, 13:21
, ну а что тут сложного? очевидно, нужно проверять фирму в документе, и в зависимости от фирмы искать договор, и, если нашли, проставлять его
Группа: Пользователи
Сообщений: 162
Из: Украина
Спасибо сказали: 39 раз
Рейтинг: 36
inna.innainna84 @ Сегодня, 16:11
,
ну если вообще не программист, лучше позвать программиста навскидку можно так:
лпДоговор =Контрагент.Договор; Если лпДоговор.Фирма = Фирма Тогда Договор = лпДоговор; Иначе ДокДоговор = СоздатьОбъект("Документ.Договор"); ДокДоговор.ВыбратьДокументы(Дата1,Дата2); Пока ДокДоговор.ПолучитьДокумент() = 1 Цикл //тут должны быть проверки на актуальность договора Если ДокДоговор.Фирма = Фирма Тогда Договор = ДокДоговор.ТекущийДокумент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли;
Группа: Пользователи
Сообщений: 162
Из: Украина
Спасибо сказали: 39 раз
Рейтинг: 36
inna.innainna84 @ Сегодня, 16:30
, в форму документа, куда нужно подставлять договор код был дан для образца. Его нужно не бездумно вставить, а с учетом нюансов вашей конфигурации
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0
Извените пожалуйста посмотрите верно ли я поняла
// =============================== Процедура ИзмКонтрагент() Если Заказ.Выбран()=1 Тогда глКомментарий("Контрагента нужно изменять в заказе!",1,,"!"); Контрагент = Заказ.Контрагент; Возврат; КонецЕсли; Если Контрагент.Выбран() = 1 Тогда ВидТорговли = Контрагент.ВидТорговли; Если Контрагент.ВидВзаиморасчетов = Перечисление.ВидыВзаиморасчетов.ПоДоговорам Тогда
лпЗаказ =Контрагент.БазДоговор; Если лпЗаказ .Фирма = Фирма Тогда Заказ =лпЗаказ; Иначе ДокЗаказ = СоздатьОбъект("Документ.Договор"); ДокЗаказ .ВыбратьДокументы(НачалоПериодаБИ(),ДатаДок); Пока ДокЗаказ .ПолучитьДокумент() = 1 Цикл //тут должны быть проверки на актуальность договора Если ДокЗаказ .Фирма = Фирма Тогда Договор = ДокЗаказ .ТекущийДокумент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли;
Группа: Пользователи
Сообщений: 108
Спасибо сказали: 2 раз
Рейтинг: 0
// =============================== Процедура ИзмКонтрагент() Если Заказ.Выбран()=1 Тогда глКомментарий("Контрагента нужно изменять в заказе!",1,,"!"); Контрагент = Заказ.Контрагент; Возврат; КонецЕсли;
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0
В реквизите элемента справочника "Контрагенты" можно указать один базовый договор. И вытянуть - один. Единственный. Если нужно каждому контрагенту задавать разные договоры для каждой фирмы - необходимо разработать способ хранения и вычисления Договора по паре "Фирма"-"Контрагент", и это далеко не так просто, как кажется. Способ реализации зависит от многих условий. Если по каждому Контрагенту оформляется единственный договор (в каком-то интервале дат) и это единственный договор является(считается) базовым - подходит способ поиска такого документа, описанный выше (который, строго говоря, не корректен, т.к. возвращает первый попавшийся в каком-то(каком?) интервале дат договор) Вариант универсальный и правильный - это создание Справочника "Базовые договора", подчиненного справочнику "Контрагенты" и имеющего реквизиты "Фирма" и "Базовый договор". После создания такого справочника необходимо создать в конфигурации интерфейсы корректировки этого справочника. С помощью которых - заполнить этот справочник, указав для каждого Контрагента(владельца) базовый договор по каждой фирме. После этого придется создать в конфигурации реализацию алгоритмов (функций/процедур) поиска в этом справочнике нужных базовых договоров. И в нужных местах - обращение к этим алгоритмам для установки нужных договоров в нужные реквизиты объектов данных (документов).
В итоге самый короткий и самый правильный совет в данном конкретном случае - вот такой: "пригласите специалиста".
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!