Имя: Пароль:
1C
1С v8
УдалитьОсновнойДоговорКонтрагента Вместо ОсновнойДоговорКонтрагента
0 kobzon2
 
01.02.16
15:41
Приветствую всех. Что такое произошло? Бухгалтерия 3.0.43.52.
Перестал работать обмен с 1с 7.7. Пишет нет объекта ОсновнойДоговорКонтрагента. Залез в конфигуратор и вправду нет. А был.
Думаю начудили что-то. Обновился до 3.0.43.88, а там его тоже нет, но есть УдалитьОсновнойДоговорКонтрагента.
Что делать? Куда делся реквизит? Ждать пока выйдет релиз с исправлением или так теперь всегда будет??
1 GROOVY
 
01.02.16
15:42
До 3.1 будет так.
2 kobzon2
 
01.02.16
15:44
(1) А зачем? Механизм сменился?
Как теперь записать основной договор контрагента?
СтруктураШапки.Вставить("ДоговорКонтрагента", Контрик.ОсновнойДоговорКонтрагента);
3 DmitrO
 
01.02.16
15:46
О Боже, изменилась типовая конфигурация! Галактика в опасности!

(2)Теперь основных договоров может быть несколько. смотри регистр сведений ОсновныеДоговорыКонтрагента.
4 kobzon2
 
01.02.16
15:47
(3) Звучит как то бредово - несколько основных договоров. Один основной, другой самый основной?)
5 Nuobu
 
01.02.16
15:48
(4) Один как покупатель, второй - поставщик. Один - для одной организации, второй - для второй.
6 kobzon2
 
01.02.16
15:49
Случайно не из-за этого у меня обновлялся релиз 40 минут, вешая мне сервак?
7 kobzon2
 
01.02.16
15:51
Ладно, всем спасибо! буду пилить. Хорошо вы в курсе,а то бы ждал сидел.
8 GROOVY
 
01.02.16
15:51
(6)  Точно из-за этого.
9 kobzon2
 
01.02.16
15:53
(8) Не, реально какая-то ерунда была. В первый раз такое. Повисло все, полез снимать через диспетчер, не снимается..
На другом компьютере, тоже медленно обновлялось, отладка то же долго запускалась.
10 hhhh
 
01.02.16
16:01
(7) чего пилить-то? Просто добавь этот реквизит.
11 kobzon2
 
01.02.16
16:03
(10) В типовую?
12 hhhh
 
01.02.16
16:04
да
13 Zapal
 
01.02.16
16:05
дурацкое решение по-моему
из-за 0.1% ситуаций наделали геморроя для всех. Оставили б хотя бы реквизит как было, чтоб народ не переписывал кучу кода
14 eklmn
 
гуру
01.02.16
16:08
(13) франчи поплакались что работы нет.
а так да геморой, осталось еще все реквизиты организации так же переделать...
15 hhhh
 
01.02.16
16:12
(14) в УТ есть УдалитьУпаковки, УдалитьКоэффициент. А также специально для любителей ЕГАИС УдалитьВидыАлкогольнойПродукции.
16 eklmn
 
гуру
01.02.16
16:28
(15) лишь бы до упп не добрались
17 kobzon2
 
02.02.16
10:45
А как сделать чтобы запрос выбирал только Основной договор? Вдруг там еще их несколько будет у одного контрагента..

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

    Запрос.УстановитьПараметр("Владелец", Контрик);
    Запрос.УстановитьПараметр("Организация", Организ);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    КонецЦикла;

Возврат ВыборкаДетальныеЗаписи.Ссылка;
КонецФункции
18 Nuobu
 
02.02.16
10:59
(17) Тебе ж написали в (3), что это регистр, а не справочник. Глянь там.
19 kobzon2
 
02.02.16
11:05
(18) С регистром что-то не заладилось у меня)
И справочник ДоговорыКонтрагентов то никуда не делся. Этот код работает, договор подставляется в документ Реализация, но подставляет первый который нашелся.
Регистр в конфигураторе смотрю, там ничего подобного нет типа признака основной или нет. А в режиме отладки в 8.3, я вообще не знаю как регистры посмотреть((
20 Dmitrii
 
гуру
02.02.16
11:10
(13) >> из-за 0.1% ситуаций...
Если у вас их 0.1%, это вовсе не означает, что у остальных тоже самое.

>> Оставили б хотя бы реквизит как было....
Очень спорное решение. Личное ИМХО - распихивать одну и ту же логику в десятке разных мест в корне неверно, т.к. в конечном счете приводит к рассинхронизации данных (в регистре будет одно, а в реквизите справочника - другое).

>> ...чтоб народ не переписывал кучу кода...
А вот тут вопрос к этому самому народу, который навешал зачем-то на этот в сущности сервисный реквизит кучу какой-то своей бизнес-логики.

ИМХО.
Реквизит ОсновнойДоговор очень долго оставался рудиментом, приплывшем к нам со времен 7.7, где не было еще учета по нескольким организациям, и ситуации, когда с контрагентом может быть несколько различного вида договоров тоже были довольно редки.
Сейчас - несколько организаций. Номенклатура видов договоров увеличилась (агенты/принципалы и т.п.).

1С всё сделала верно. Единственный вопрос - почему так долго. Это надо было сделать еще во времена первых редакций БП.
21 DmitrO
 
02.02.16
11:10
да боже ж ты мой..

Функция ПолучитьОсновнойДоговорКонтрагента(Контрагент, Организация, ВидДоговора)
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |выбрать
    |    Договор
    |из РегистрСведений.ОсновныеДоговорыКонтрагента
    |где Организация = &Организация и Контрагент = &Контрагент и ВидДоговора = &ВидДоговора
    |
    |";
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("ВидДоговора", ВидДоговора);
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Выборка.Договор;
    Иначе
        Возврат Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
    КонецЕсли;
КонецФункции
22 kobzon2
 
02.02.16
11:14
(21) Спасибо за код)
ВидДоговора - это с покупателем/поставщиком.
А сам флаг того что он Основной как сделать в запросе?
Или в этом регистре только Основные, а дополнительных тут нет?
23 DmitrO
 
02.02.16
11:17
Вылазь уже и танка, в регистре только основные, все договоры в справочнике.

А потом в 1С решат поменять название регистра с ОсновныеДоговорыКонтрагента на ОсновныеДоговорыКонтрагентов.

trollface
24 kobzon2
 
02.02.16
11:19
(23) Всё понял, благодарю!
Я же старый клюшник))