|
как с помощью обработки установить основной договор контрагента | ☑ | ||
---|---|---|---|---|
0
amadeus2010
22.11.13
✎
13:21
|
Добрый день, такой вопрос в справочнике Контрагенты указан договор с контрагентом, как программно сделать его основным. Обработкой были загружены 5000 контрагентов и ни кого не указан основной договор как при нажатии кнопки Основной. Из-за этого не проводятся документы реализации.
создал такую процедуру //////////////////////////////////////////////////////////////// Процедура Кнопка1Нажатие(Элемент) Контрагенты=Справочники.Контрагенты.НайтиПоНаименованию(ЭтотОбъект); если Контрагенты.Покупатель=Ложь тогда попытка КонтрагентыОбъект = Контрагенты.ПолучитьОбъект(); КонтрагентыОбъект.Покупатель=Истина; //Здесь должен быть объект !!!!!!!!!!! //КонтрагентыОбъект.Записать(); исключение конецпопытки; конецесли; выборка = Справочники.ДоговорыКонтрагентов.Выбрать( ,Контрагенты); Пока выборка.Следующий() = 1 Цикл Если (выборка.Наименование="Əsas Müqavilə") и (выборка.ВидДоговора=перечисления.ВидыДоговоровКонтрагентов.СПокупателем) тогда КонтрагентыОбъект.ОсновнойДоговорКонтрагента=выборка.Ссылка; КонтрагентыОбъект.Записать(); иначе сообщить("нет Əsas Müqavilə!"); конецесли; КонецЦикла; КонецПроцедуры ////////////////////////////////////////////////////////////////// но наименование договора не становиться основным |
|||
1
Godofsin
22.11.13
✎
13:22
|
выборка.Наименование="Əsas Müqavilə" - 0_0
|
|||
2
George Wheels
22.11.13
✎
13:23
|
Контрагенты=Справочники.Контрагенты.НайтиПоНаименованию(ЭтотОбъект);
Что такое ЭтотОбъект? |
|||
3
Maxus43
22.11.13
✎
13:24
|
посмотри что происходит по нажатию кнокпи "основной", тоже самое надо сделать
|
|||
4
Cube
22.11.13
✎
13:24
|
(0) Замени везде слово "Контрагенты" на "МояПеременная"
|
|||
5
Cube
22.11.13
✎
13:24
|
+(4) А не, что-то я прогнал))
|
|||
6
Godofsin
22.11.13
✎
13:27
|
ПроверитьПометкуКнопкиУстановкиОсновногоДоговора();
Это в УТ 10.3 при нажатии на кнопку "Основной" |
|||
7
amadeus2010
22.11.13
✎
13:30
|
(1)это наименование договора на азербайджанском просто на форуме не читается
|
|||
8
amadeus2010
22.11.13
✎
13:52
|
что-то не получается пока что-то решить задачу
|
|||
9
catena
22.11.13
✎
13:54
|
А Покупатель в истину выставляется?
|
|||
10
Infsams654
22.11.13
✎
13:58
|
(0) 5000 контрагентов
"создал такую процедуру" Процедура Кнопка1Нажатие(Элемент) дальше читать уже бесполезно |
|||
11
amadeus2010
22.11.13
✎
14:04
|
(10) эти контрагенты были загружены другой обработкой в которой не было учтена установка основного договора по умолчанию.Теперь надо сделать так чтобы для всех контрагентов был основной договор по умолчанию один. Для этого я пытаюсь создать обработку которая проставит для всех договоров по умолчанию 1 основной договор т.е он станет полужирным шрифтом
|
|||
12
Aleksey
22.11.13
✎
14:05
|
(0) какая связь между основным договором и проведением реализации?
Исправь загрузку реализации чтобы она брала не основной договор, а искала по наименованию, или сначало основной, а если он пустой - ищем по наименованию |
|||
13
Aleksey
22.11.13
✎
14:06
|
(11) От того что ты проставишь основной договор, старые реализации проводится не будут
|
|||
14
Aleksey
22.11.13
✎
14:07
|
И да у тебя скорее всего не выполняется условие, попробуй или СокрЛП(выборка.Наименование), или через найти
|
|||
15
amadeus2010
22.11.13
✎
14:12
|
(12) Мне надо чтобы у контрагентов было проставлено основной договор "Договор" и чтобы он был выделен полужирным шрифтом как при нажатии кнопки Основной или при нажатии кнопки Записать справочника Контрагенты
|
|||
16
Aleksey
22.11.13
✎
14:16
|
(15) У тебя нарушена причина-следственная свзяь, реализация не проводится не потому что у контрагента не указан основной договор. У тебя цель какая? Провести реализацию?
Даже если ты укажешь основной договор, то всё равно реализация не проведётся, ты это можешь понять? |
|||
17
Aleksey
22.11.13
✎
14:17
|
И да такие дела делаются не выборкой, а запросом, плюс там еще может быть разные организации
|
|||
18
amadeus2010
22.11.13
✎
14:23
|
(15) сейчас задача стоит в том чтобы у всех договоров название договора было полужирным шрифтом т.е он был основным из списка.
|
|||
19
amadeus2010
22.11.13
✎
14:23
|
Организация одна
|
|||
20
Fram
22.11.13
✎
14:28
|
А вот это никого не смутило?
Пока выборка.Следующий() = 1 Цикл |
|||
21
Aleksey
22.11.13
✎
14:29
|
(20) а должно?
|
|||
22
Aleksey
22.11.13
✎
14:30
|
(18) перепеши на запрос по справочнику договору, это быстрее и проще
|
|||
23
Fram
22.11.13
✎
14:31
|
(21)
СправочникВыборка.<Имя справочника>.Следующий (CatalogSelection.<Имя справочника>.Next) СправочникВыборка.<Имя справочника> (CatalogSelection.<Имя справочника>) Следующий (Next) Синтаксис: Следующий() Возвращаемое значение: Тип: Булево. Истина - следующий элемент выбран; Ложь - достигнут конец выборки. Описание: Получает следующий элемент из выборки. Для обхода справочника нужно после получения выборки вызвать данный метод для позиционирования на первый элемент и далее вызывать до тех пор, пока не будет возвращено значение Ложь. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: ВыборкаСправочника = Справочники.Валюты.Выбрать(); Пока ВыборкаСправочника.Следующий() Цикл Сообщить("Записана валюта " + ВыборкаСправочника.Наименование); КонецЦикла; |
|||
24
Fram
22.11.13
✎
14:31
|
Тип: Булево !!!!!!!!!
|
|||
25
Aleksey
22.11.13
✎
14:33
|
(24) это же 1С, тут неявное преобразования типа
Т.е. у 1С (истина = 1 ) дает истину |
|||
26
Aleksey
22.11.13
✎
14:34
|
т.е. для 1С истина и 1 равнозначные понятия, так же как и ложь и 0, видно сделано для совместимости с 7.7
|
|||
27
amadeus2010
22.11.13
✎
14:37
|
предположим создал такой запрос который показывает основный договора
ВЫБРАТЬ Контрагенты.Наименование, Контрагенты.ОсновнойДоговорКонтрагента ИЗ Справочник.Контрагенты КАК Контрагенты т.е те у которых название выделено полужирным шрифтом, а как отобрать остальных контрагентов и им назначить основной договор? |
|||
28
Fram
22.11.13
✎
14:37
|
(26) действительно. не знал
|
|||
29
Aleksey
22.11.13
✎
14:40
|
Запрос=новый Запрос;
Запрос.Текст=" |ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка.Владелец КАК Контрагент, | ДоговорыКонтрагентов.Ссылка КАК Договор |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора | И ДоговорыКонтрагентов.Наименование ПОДОБНО &Наименование | И ДоговорыКонтрагентов.Владелец.ОсновнойДоговорКонтрагента <> ДоговорыКонтрагентов.Ссылка |"; Запрос.УстановитьПараметр("ВидДоговора",Перечисления.ВидыДоговоровКонтрагентов.СПокупателем); Запрос.УстановитьПараметр("Наименование","%догово%"); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл КонтрагентОбъект = Результат.Контрагент.ПолучитьОбъект(); КонтрагентОбъект.ОсновнойДоговорКонтрагента = Результат.Договор; КонтрагентОбъект.Записать(); КонецЦикла; |
|||
30
Aleksey
22.11.13
✎
14:42
|
только вместо
Запрос.УстановитьПараметр("Наименование","%догово%"); Укажи своё "Əsas Müqavilə" |
|||
31
amadeus2010
22.11.13
✎
14:43
|
спасибо, т.е запрос установит пометку полужирный для всех договоров?
|
|||
32
Aleksey
22.11.13
✎
14:46
|
(31) нет запрос выберет те договора которые "не полужирные", а уже затем ты в выборке проставляешь основной договор, который автоматом делает полужирные
|
|||
33
Мимохожий Однако
22.11.13
✎
14:51
|
КонтрагентОбъект = ЭтотОбъект.Владелец.ПолучитьОбъект();
КонтрагентОбъект.ОсновнойДоговорКонтрагента = ЭтотОбъект.Ссылка; КонтрагентОбъект.Записать(); |
|||
34
Infsams654
22.11.13
✎
16:59
|
(31) да, запросы предназначены именно для того, чтобы устанавливать пометку полужирный
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |