1с 77 найти документ по номеру

Обновлено: 07.07.2024

Разбираюсь с долгоиграющей обработкой, где есть вот такой кусочек:


Код ( (Unknown Language)):
ДокСпец=СоздатьОбъект("Документ");
ДокСпец.ОбратныйПорядок(1);
ДокСпец.ВыбратьПоЗначению(,,"Специальность",Спр.ТекущийЭлеме нт());
Пока ДокСпец.ПолучитьДокумент()=1 Цикл
Если ДокСпец.ПометкаУдаления()=0 Тогда
Если ДокСпец.Вид()="Специальности" Тогда
Если ДокСпец.Специальность=Спр.ТекущийЭлемент() Тогда
ОК=0
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Настройка самописная, тот, кто это писал - ленив, конечно, но в отсутствии мозгов я ему не отказываю. ;)

Вопрос - может быть, это я чего-то не знаю, и действительно грамотнее писать
ДокСпец=СоздатьОбъект("Документ");
а потом делать проверку на его вид.

а не так, как я:
ДокСпец=СоздатьОбъект("Документ.Специальности");
и цикл только по документам этого вида.

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

На оборотной стороне документа word в правой части документа, текст съезжает за границу документа
Добрый вечер. Есть код, который формирует документ из шаблона. И все вроде бы, но происходит что.


Поиск документа
Нужно при нажатии на кнопку искать документ Word на пк и вставлять его имя в список сохранять.

Поиск подчиненного документа 1С 7.7
Конфигурация 7.7 Не могу найти похожих статей. Подскажите плз. Надо перебрать в журнале.

Поиск по содержимому документа
Доброго времени суток! Интересует программа для поиска документов по содержимому (ключевым.

Если Специальность является реквизитом нескольких видов документов - тогда первый вариант (возможно, для документов вида НЕ Специальности нужна обработка по другому типу),
если только одного - тогда второй сработает.
А в чем проблема ?

В данном случае - обработка только по этому виду документа.
Проблема - слишком большой объем базы, чтобы перебирать ВСЕ документы.
Ну и опять же - я не могу отрицать, что человек, который это писал, обладает знаниями, которых у меня может и не быть. Короче, пока я не понимаю, почему он все поиски в настройке пишет вот так:

Док = создатьОбъект("документ");
Док.ВыбратьДокументы();
Пока ПолучитьДокумент()=1 цикл
Если Док.Вид()=НужныйВид Тогда
КонецЕсли;
КонецЦикла;

у меня нет уверенности, что это действительно неправильно.

если нужно обрабатывать только один вид документов то его и надо определить в
Док = создатьОбъект("документ.конкретныйвид");
а потом уже можно будет искать к примеру по номеру или еще по чему-нибудь, не перебирая все доки. если база на скуле - нужно тогда цикл запросом заменить в котором можно указать необходимое условие

Из документа "Смена учетных параметров" выбрать нужный документ по серийному номеру и номенклатуре
У меня есть серийный номер и номенклатура, мне нужно из документа "Смена учетных параметров".


По заданному номеру номеру масти м и номеру достоинства карты к определить полное название карты
Мастям игральных карт условно присвоены следующие порядковые номера:пики-1, трефы-2 , бубны-3.


Найти сумму четных по номеру элементов массива и произведение нечетных по номеру
Найти сумму четных по номеру элементов массива и произведение нечетных по номеру.

Что такое ДатаДок?
Почитай синтакс-помощник, В ДатаДок надо указывать период в котором ты хочешь искать документ в зависимости от периодичности нумерации. Если периодичность не установлена, то дату указывать не надо.

Интервал журнала тут вообще не причём. если тебе надо сказать, что документа в этом интервале нет. то сначала найди документ, возьми его дату, проверь с интервалом журнала и сообщи пользователю, что надо.
Опять же непонятно зачем тебе интервал журнала, если ты сразу документ открывваешь

Ramzes7523, Вы сами логику понимаете? Зачем вы создаете объект? И что это за объект?
Почему вы считаете, что у НОВОГО объекта может быть какой-то номер? Он только создан (хотя ваш код ничего НЕ создает), откуда там номер и что он может найти? Почему вы считаете что в таком виде будет искать по всей базе, если, как правило периодичность нумерации указывается в пределах года и значит, при наличии ДатаДок (тоже - что это и откуда ДатаДок?) искать будет в пределах года. Хотите по всей базе - не указывайте второй параметр. (читайте СП, там все более чем прозрачно). Что такое ТекущийДокумент() и откуда взялся?
Такое ощущение, что читаешь набор каких-то кусков даже не кода, а какой-то его имитации

Хочешь найти док с определенным номером? ЗАПРОС к БД с отбором по этому номеру. Пока все что вы показали - полнейший бред, извините

У тебя периодичность нумерации документа задана? Если да, то указывай любую дату из нужного периода, если нет, то дату вообще не указывай.

Документ ищется в базе, а не в открытом журнале и область видимости пользователя тут вообще не причём


Пример, периодичность задана - год:
2018 год, номера документов:
1
2
3
4
5
2019 год:
1
2
3
4
5

Нам нужен документ номер 3 из 2018 года, пишем

Дата должна быть любая из 2018 года

Если периодичность нумерации не задана. то:
2018 год
1
2
3
4
5
2019 год
6
7
8
9
10 - нумерация не начинается заново и номер всегда уникальный

Читайте также: