8.х Как проверить документ на вложение?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Isupovalex, 13 май 2015.

  1. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну тут уже просто я так понимаю вопрос дисциплины, что бы цепляли, понятно что место скана договора можно прикрепить и фото бабушки...
  2. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    ага :)
    можно поставить минимальную проверку, хотя бы на размер, или каким либо образом получать кол-во строк в файле и проверять пустая не пустая, соответствует формату или нет и т.д. (сплошное творчество)
  3. TopicStarter Overlay
    Isupovalex
    Offline

    Isupovalex

    Регистрация:
    23 апр 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ХранилищеДополнительнойИнформации.Объект
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации";

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

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

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

    Объект - это реквизит имеет тип ссылка на тот документ, в котором будут проводиться док-ты с вложениями.
    в цикле мне необходимо: либо накопить значение, либо сравнить с значением в "Объекте"
    Как правильно поступить?
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да надо в запросе условие отбора на объект сделать и все.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Код:
    "ВЫБРАТЬ Первые 1
    | ХранилищеДополнительнойИнформации.Ссылка
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    | ХранилищеДополнительнойИнформации.Объект = &СсылкаНаДокумент";
    Последнее редактирование: 15 май 2015
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да можно и без Первые, если проверять на Результат.Пустой()
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Ну я из соображений быстродействия.....если оно будет медленнее, то можно и без ПЕРВЫЕ....
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Просто когда Получаешь Результат.Пустой() там то выборки еще нет на самом деле не 1 и не два и т.д
    Если бы проверка была
    Если Выборка.Следующий() Тогда

    Тогда да там уже выборка получается из базы, а там просто результат запроса
    --- Объединение сообщений, 15 май 2015 ---
    Хотя может и быстрее то же будет, надо пробовать, но по времени думаю не критично
  9. TopicStarter Overlay
    Isupovalex
    Offline

    Isupovalex

    Регистрация:
    23 апр 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ХранилищеДополнительнойИнформации.Объект
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    | ХранилищеДополнительнойИнформации.Объект = &СсылкаНаДокумент";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", СсылкаНаДокумент);

    Возникает ошибка, типо описать переменную необходимо


    {Документ.СчетНаОплатуПоставщика(731,48)}: Переменная не определена (СсылкаНаДокумент)
    Запрос.УстановитьПараметр("СсылкаНаДокумент", <<?>>СсылкаНаДокумент); (Проверка: Толстый клиент (обычное приложение))
  10. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Поставь :
    Код:
    Запрос.УстановитьПараметр("СсылкаНаДокумент", Ссылка); 
    --- Объединение сообщений, 18 май 2015 ---
    В УПП один-эсовцы применяют следующую конструкцию :
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    1
    |ИЗ
    |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    |    ХранилищеДополнительнойИнформации.Объект = &СсылкаНаДокумент
    |";
    
    Запрос.УстановитьПараметр("СсылкаНаДокумент", Ссылка);
    
    а далее проверка результата на пустой или нет
  11. TopicStarter Overlay
    Isupovalex
    Offline

    Isupovalex

    Регистрация:
    23 апр 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Всем спасибо за помощь и подсказки, в итоге получился рабочий код в котором существует две ветки действия: если есть вложение, и если его нет:

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ХранилищеДополнительнойИнформации.Объект
    |ИЗ
    | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    | ХранилищеДополнительнойИнформации.Объект = &СсылкаНаДокумент";

    Запрос.УстановитьПараметр("СсылкаНаДокумент", Ссылка);
    Результат = Запрос.Выполнить();
    Если результат.Пустой() тогда
    сообщить ("Вложение отсутствует");
    Иначе
    сообщить ("Вложение присутствует");
    КонецЕсли;
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Так с самых первых постов и писали так делать
  13. TopicStarter Overlay
    Isupovalex
    Offline

    Isupovalex

    Регистрация:
    23 апр 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    До новичка долго доходит :)

Поделиться этой страницей