8.х Проверка заполнение документа из справочника.

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем АлексейСХД, 4 фев 2019.

  1. TopicStarter Overlay
    АлексейСХД
    Offline

    АлексейСХД

    Регистрация:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    ДОбрый день. Подскажите как при записи (Справочника) сделать проверку документа, что при записи справочник документ перезаписывался справочником. Сам документ создается при создании справочника, а вот если редактировать, ни в какую не хочет.
    Код:
    Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    Договора.Ссылка
            |ИЗ
            |    Документ.Договора КАК Договора
            |ГДЕ
            |    Договора.СсылкаНаДоговор = &СсылкаНаДоговор";   
        Запрос.УстановитьПараметр("СсылкаНаДоговор", Объект.Ссылка);   
        ДокументВБазе = Запрос.Выполнить().Выгрузить();
        Если ДокументВБазе.Количество()>0 Тогда   
            Док = ДокументВБазе[0].Ссылка;
            Док.Наименование = Объект.Наименование;
            Док.Номер = Объект.НомерДокумента;
            Док.Дата = ТекущаяДата();
            Док.Контрагент = Объект.Контрагент;
            Док.СуммаДокумента = Объект.СуммаДокумента;
            Док.Записать(РежимЗаписиДокумента.Проведение);
        Иначе
            Док = Документы.Договора.СоздатьДокумент();
            Док.Наименование = Объект.Наименование;
            Док.Номер = Объект.НомерДокумента;
            Док.Дата = ТекущаяДата();
            Док.Контрагент = Объект.Контрагент;
            Док.Сумма = Объект.СуммаДокумента;
            Док.СсылкаНаДоговор = Объект.Ссылка;
            Док.Записать(РежимЗаписиДокумента.Проведение);
        КонецЕсли;
    
    Это создание документа. и проверка. а вот как быть когда повторно открыли документ и изменили сумму.
  2. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.107
    Симпатии:
    209
    Баллы:
    104
    Код:
    Док = ДокументВБазе[0].Ссылка.ПолучитьОбъект();
    АлексейСХД нравится это.
  3. TopicStarter Overlay
    АлексейСХД
    Offline

    АлексейСХД

    Регистрация:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Спасибо большое. разумеется дописал и все работает теперь как надо.
  4. TopicStarter Overlay
    АлексейСХД
    Offline

    АлексейСХД

    Регистрация:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Подскажите как реализовать что бы в документе на форму документа при выборе из справочника заполнялся еще и родитель. и какое лучше событие использовать для этого?

    К примеру: Документ с реквизитом АдресОбъекта ссылка на иерархический справочник "Адрес" где Группа(Город), Группа (Улица), объект(№ дома),
  5. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.107
    Симпатии:
    209
    Баллы:
    104
    Событие "При изменении".
    А куда родитель должен подставляться? В соседнее поле?
    АлексейСХД нравится это.
  6. TopicStarter Overlay
    АлексейСХД
    Offline

    АлексейСХД

    Регистрация:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Группы подставляются в это же поле. то есть когда в документе выбираем адрес из справочника что бы подставлялся адрес с группами.
    Примерный код такой:
    Код:
    Процедура АдресОбъектаОбработкаВыбораНаСервере()
         АдресГруппа = Справочники.АдресОбъекта.Выбрать();
         АдресРодитель1 = АдресГруппа.Родитель;
         //АдресРодитель2 = АдресГруппа.Родитель.Родитель.Наименование;
         Адрес = АдресГруппа.Наименование;
         АдресОбъект = АдресРодитель1;
        Пока АдресГруппа.Следующий() Цикл
            Сообщить(АдресГруппа.Родитель.Родитель.Наименование + "  " + АдресГруппа.Родитель.Наименование + "  " + АдресГруппа.Наименование);    
           КонецЦикла;
    
    Только АдресОбъект = АдресРодитель1+АдресРодитель2+Адрес; выдает ошибку что не может быть преобразовано к числу. а сообщение выходит нормально.
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    5.107
    Симпатии:
    209
    Баллы:
    104
    Ну, если у этого поля тип ссылочный, Вы строку туда не запишете.
    По поводу ошибки: Нужно либо пустую строку вперед вставить, либо первое "слагаемое" нужно к строке преобразовать.
    Код:
    АдресОбъект = "" + АдресРодитель1+АдресРодитель2+Адрес;
    или
    Код:
    АдресОбъект = Строка(АдресРодитель1)+АдресРодитель2+Адрес;
    АлексейСХД нравится это.
  8. TopicStarter Overlay
    АлексейСХД
    Offline

    АлексейСХД

    Регистрация:
    7 ноя 2016
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Спасибо за подсказку. правда пока не получилось преобразовать. но все равно сделаю и выложу решение. в поиске не я один кто ищет подобные задачки)