|
Групповая обработка договоров контрагентов | ☑ | ||
---|---|---|---|---|
0
Arland
24.02.19
✎
09:01
|
Добрый день!
1с 8.2 УТ 10.3. Перенес справочники контрагентов из ТиС 7.7 в УТ 10.3, загрузил договора контрагентов с помощью обработки ЗагрузкаДанныхИзТабличногоДокумента. Вопрос, как с помощью групповой обработки сделать договора основными? Т.е. чтобы договора выделить жирным) У всех контрагентов только один договор, заходить в каждую карточку контрагента и нажимать кнопку "Основной" это долго!) |
|||
1
ДенисЧ
24.02.19
✎
09:08
|
Обработка из 5 строчек?
|
|||
2
Maniac
24.02.19
✎
09:08
|
Напиши обработку. Дел на 20 строк кода
|
|||
3
Arland
24.02.19
✎
09:10
|
(1) (2) Я не умею писать обработки(
Можете подсказать как это примерно должно выглядеть? |
|||
4
Maniac
24.02.19
✎
09:20
|
это должно выглядеть как 1 000 рублей
|
|||
5
Arland
24.02.19
✎
09:28
|
(4) За 5 или 20 строк?)
|
|||
6
hhhh
24.02.19
✎
09:32
|
(5) за 20 строк - это 4000 получается.
|
|||
7
Arland
24.02.19
✎
09:42
|
При выборе договоров примерно так?
Процедура ОсновныеДействияФормыВыполнить(Кнопка) Контр=Справочники.Контрагенты.НайтиПоНаименованию(ТекущаяСтрока.Контрагент); выборка = Справочники.ДоговорыКонтрагентов.Выбрать(); Пока выборка.Следующий() = 1 Цикл Если (выборка.Наименование="Основной договор") и (выборка.ВидДоговора=перечисления.ВидыДоговоровКонтрагентов.СПокупателем) тогда ОсновнойДоговорКонтрагента=выборка.ссылка; иначе сообщить("нет договора С покупателем!"); конецесли; КонецЦикла; КонецПроцедуры Вылетает ошибка {Форма.Форма.Форма(4,52)}: Переменная не определена (ТекущаяСтрока) Контр=Справочники.Контрагенты.НайтиПоНаименованию(<<?>>ТекущаяСтрока.Контрагент); (Проверка: Толстый клиент (обычное приложение)) |
|||
8
JeyRico
24.02.19
✎
09:43
|
(5) 5 строк кода бесплатно, 1 000 - за правильные 5 строк.
|
|||
9
Arland
24.02.19
✎
09:46
|
Ну, или
Процедура ОсновныеДействияФормыВыполнить(Кнопка) ФИО=Справочники.Контрагенты.НайтиПоНаименованию(ТекущаяСтрока.Контрагент); выборка = Справочники.ДоговорыКонтрагентов.Выбрать(); Пока выборка.Следующий() = 1 Цикл Если (выборка.Наименование="Основной договор") и (выборка.ВидДоговора=перечисления.ВидыДоговоровКонтрагентов.СПокупателем) тогда ОсновнойДоговорКонтрагента=выборка.ссылка; иначе сообщить("нет договора С покупателем!"); конецесли; КонецЦикла; КонецПроцедуры {Форма.Форма.Форма(4,50)}: Переменная не определена (ТекущаяСтрока) ФИО=Справочники.Контрагенты.НайтиПоНаименованию(<<?>>ТекущаяСтрока.Контрагент); (Проверка: Толстый клиент (обычное приложение)) Где тут ошибка?) |
|||
10
Arland
24.02.19
✎
09:49
|
как правильно сделать выборку имеющихся договоров и и установить признак основной?
|
|||
11
Мимохожий Однако
24.02.19
✎
10:47
|
(10) Сначала собери массив договоров из выборки, а потом обработай массив. Выборку получи запросов. Самое главное-понять какой объект делает договор контрагента основным. Начни с этого. Полезно также использовать режим отладки с точками останова перед строкой ошибки.
|
|||
12
Мимохожий Однако
24.02.19
✎
10:47
|
*выборку получи запросом.
|
|||
13
RomanYS
24.02.19
✎
10:51
|
(0) На самом деле если названия договоров и контрагентов уникальные, то самый простой вариант та же обработка ЗагрузкаДанныхИзТабличногоДокумента. Грузим в справочник контрагенты два реквизита: наименование (с поиском по нему) и основной договор. Ставим флаг "не создавать новых" и не забываем делать бэкап
|
|||
14
RomanYS
24.02.19
✎
10:52
|
*(13) остальные реквизиты естественно отключаем
|
|||
15
Maniac
24.02.19
✎
11:42
|
Чувак я почти написал тебе супер обработку
|
|||
16
Мимохожий Однако
24.02.19
✎
11:56
|
(15) Это от скуки.
|
|||
17
Arland
24.02.19
✎
12:20
|
(15) и, где она?)
|
|||
18
Arland
24.02.19
✎
12:21
|
(15) а то, я сижу тут запросы учу)))
|
|||
19
Maniac
24.02.19
✎
12:21
|
Вот по ссылке описание и обработка.
Все сделал на высшем уровне, красота да и только. https://subsystems.ru/forum/46/topic1029/ Донат скидывать на номер телефона +7 988 999 30 77 (сколько не жалко, главное понимать что принесло пользу). Обработку можно расширять, так как это может быть полноценным отчетом по контрагентам. там заложено все. Построитель, вывод таблиц, роасшифровки и прочее. Яркий пример как нужно красиво программировать и создавать обработки. |
|||
20
Arland
24.02.19
✎
12:23
|
(19) Ша опробую
|
|||
21
Arland
24.02.19
✎
12:32
|
(19) Спасибо огромное!!! (4) Но! это выглядит на много больше!)) Спасибо!!! придется все-таки учить запросы)
|
|||
22
Arland
24.02.19
✎
12:33
|
(4) Спасибо огромное!!! (4) Но! это выглядит на много больше!)) Спасибо!!! придется все-таки учить запросы)
|
|||
23
mistеr
24.02.19
✎
16:51
|
Для полноты картины решение с условием "не писать свою обработку".
Это делается в той же обработке ЗагрузкаДанныхИзТабличногоДокумента при загрузке договоров. По кнопке "События..." при записи объекта пишем: // проставим как основной КонтрагентОбъект = Объект.Владелец.ПолучитьОбъект(); КонтрагентОбъект.ОсновнойДоговорКонтрагента = Объект.Ссылка; КонтрагентОбъект.Записать(); |
|||
24
Cyberhawk
24.02.19
✎
18:43
|
Какой только херней не готов страдать кодер, лишь бы не пользоваться готовым
|
|||
25
Uncore
27.02.19
✎
17:17
|
Эпичное конечно решение вопроса, но для полной красивости лучше конечно убрать запрос в цикле:
Для Каждого ВыборкаСтрока Из ТабличнаяЧасть Цикл КонтрагентОбъект = ВыборкаСтрока.Контрагент.ПолучитьОбъект(); ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 | ДоговорыКонтрагентов.Ссылка |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &ВладелецКонтрагент"; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ВладелецКонтрагент",ВыборкаСтрока.Контрагент); Запрос.Текст = ТекстЗапроса; ВыборкаЗапрос = Запрос.Выполнить().Выбрать(); Пока ВыборкаЗапрос.Следующий() Цикл ВыборкаСтрока.ДоговорПосле = ВыборкаЗапрос.Ссылка; КонецЦикла; КонецЦикла; |
|||
26
andanlv
30.03.19
✎
21:45
|
Arland
К сожалению не нашел как писать в личку на этом форуме.... Можете поделиться обработкой из темы: Перенос справочников, остатков товаров и долгов контрагентов в чистую базу Я прижат по времени сильно, вы бы меня выручили. |
|||
27
Мимохожий Однако
31.03.19
✎
10:39
|
(26) Если выложена почта в карточке, то сможешь написать. А обработку проси у Маньяка
|
|||
28
andanlv
31.03.19
✎
12:32
|
Спасибо огромное.
Почту он закрыл в настройках( Ник у маньяка так и пишется? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |