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

Обновлено: 02.07.2024

Камрады, подскажите в чем трабла: пишу обработку по переносу данных из клюшек в Бухию КОРП 2.0 по ОЛЕ. Номера документов беру из 7.7 (номер короче - 10 знаков против 11 в восьмерке). Документ ПриходныйКассовыйОрдер - без проблем, НайтиПоНомеру - его всегда находит. А вот РасходныйКассовыйОрдер - фиг. уже попробовал банально: Док = Документы.РасходныйКассовыйОрдер; Приходный есть, расходного нет :( Документ с таким номером есть 100%, дата правильная. В обработке по переносу, при записи ругается, что номер не уникальный, а не находит никак. Нипанима :( Настройки нумерации у обоих видов документов посмотрел - вроде одинаковые.

"Документ с таким номером есть 100%, дата правильная" - тупая машина не понимает человека, который умнее нее.

Если номер строка - то и пробелы незначащие надо бы тоже

А где сам автор? Наверное уже все исправил и все работает.

Почему для приходного это работает? Тем паче этот код только для проверки, обработка по переносу берет оригинальную дату документа.

я пробовал пробелы добавлять - все равно, ПКО ищет, РКО нет. Я не понимаю почему разница в результатах.

Вот так, результат тот же. РКО - не находит, ПКО - находит. Если просто создаю РКО и номер ему присвает система - то по этому номеру находит.

сделай проще выведи эту ссылку в реквизит, через реквизит найди этот документ по номеру и дате. и сообщи номер и дату. а то бубен тебе подарить надо :)

Тогда ничего не находит. ни тот ни другой. Ушел пробовать

есть разница ТПО1-01282 и ТПО1-01 282 ты не пробел ищи, а неразрывный пробел, т.е. Символ.НПП СтрЗаменить(МойНомер,Символы.НПП,"")

Запросом почему то так же. Еще раз: обработка ОЛЕ, при первом запуске создала документы с теми номерами которые там есть (неразрывных пробелов там точно нет - редактирование номеров не доступно). Повторный запуск должен приводить к поиску тех же самых номеров. В случае с ПКО - так и есть, все номера выискиваются нормально, без каких либо проблем, обработано порядка 13000 документов. А вот с РКО что то странное.

+1 искать по номеру надо лишь при импорте. Больше не могу придумать, где эта функция может понадобиться

В оригинальной обработке поиск выглядит так: Что сделать в 22, я не понял. Оп, у нас озарение :) Это как бы и есть импорт.

Да я уже что только не пробовал. Если оно должно работать, то пусть работает у всех документов, если не должно, то почему работает выборочно? Спасет ли отца русской демократии добивка 0 до полных 11 символов в номере?

, А вот фиг :) Я понимаю, что звучит как бред, но уже сам тихо хренею.

Нули добавлял. Самым простым способом. Первый проход документы создались, а вот искать уже не хочет :(

В вопрос про пробелы, а ты пишешь "0". Я чего-то не догоняю?

- перечитай. Я и писал про 0. Зачем про пробелы спрашивает - не ко мне вопрос. Про пробелы выше уже решили - не спасает.


Перестал работать или не работает метод ПоискПоНомеру 1С 8.2/8.3

ПРОГРАММИРОВАНИЕ 1С 8 → перейти в меню [СТАТЬИ И ИНСТРУКЦИИ]


Отчёт всегда работал! И вдруг ошибка: Документ не найден! А он есть… Эта проблема обычно возникает, когда в документе, по которому происходит поиск, мы поменяли периодичность. Дело в том, что в методе НайтиПоНомеру( -обязательный параметр, - необязательный параметр, если периодичность: Непериодически и обязательный параметр, если периодичность: В пределах года, месяца, квартала, дня)

Решение проблемы: Всё, что нужно сделать, это добавить в параметры дату, в пределах периодичности которой будет происходить поиск документов. Например: Если периодичность документа установлена - "В пределах года". Дата в параметре = '21.07.2015', то отбор будет осуществляться за весь 2015 год.

Процедура ТабличнаяЧасть1НомерПриИзменении ( Элемент )
Если документы . ТТН_Расход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер )<> документы . ТТН_Расход . ПустаяСсылка () тогда
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ =
документы . ТТН_Расход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер );
ВвестиЧисло ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Количество , "Введите количество документов" , 3 , 0 );
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Дата =
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ . Дата ;
ИначеЕсли
документы . ТТН_Приход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер )<> документы . ТТН_Приход . ПустаяСсылка () тогда
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ =
документы . ТТН_Приход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер );
ВвестиЧисло ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Количество , "Введите количество документов" , 3 , 0 );
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Дата =
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ . Дата ;
Иначе
Сообщить ( "Документа с таким номером не обнаружено!" );
КонецЕсли;
КонецПроцедуры

Процедура ТабличнаяЧасть1НомерПриИзменении ( Элемент )
Если документы . ТТН_Расход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер , Дата )<> документы . ТТН_Расход . ПустаяСсылка () тогда
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ =
документы . ТТН_Расход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер , Дата );
ВвестиЧисло ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Количество , "Введите количество документов" , 3 , 0 );
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Дата =
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ . Дата ;
ИначеЕсли
документы . ТТН_Приход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер , Дата )<> документы . ТТН_Приход . ПустаяСсылка () тогда
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ =
документы . ТТН_Приход . НайтиПоНомеру ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Номер , Дата );
ВвестиЧисло ( ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Количество , "Введите количество документов" , 3 , 0 );
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Дата =
ЭлементыФормы . ТабличнаяЧасть1 . ТекущиеДанные . Документ . Дата ;
Иначе
Сообщить ( "Документа с таким номером за " + СокрЛП ( Формат ( Дата , "ДФ=""гггг""" ))+ " год не обнаружено!" );
КонецЕсли;
КонецПроцедуры

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


По заданному номеру номеру масти м и номеру достоинства карты к определить полное название карты
Мастям игральных карт условно присвоены следующие порядковые номера:пики-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 - нумерация не начинается заново и номер всегда уникальный

logist --> logist



Просмотр профиля

Есть документ с периодичностью нумерации "День". Длинна номера 8 символов, строка. Сам номер группирован, т.е. имеет вид 123 456.
Есть значение ИскомыйНомер - которое имеет такой же вид 123 456.

Проблема: если НайтиПоНомеру(ИскомыйНомер) - ничего не находит, если НайтиПоНомеру(ИскомыйНомер,Дата) то нормально находит все документы в нужной дате, однако нужен поиск без ограничения по дате, поскольку фактически документы создаются программно и номер присваивается не порядковый, и дневная нумерация не соблюдается.
Как решить? %)

платформа 8,1,15. конфа самописная.

Zaval --> Zaval



Просмотр профиля Блин. группированный номер - изврат.
Может, при поиске использовать "Формат" в извращенной форме? Написать хитрый запрос. logist --> logist



Просмотр профиля

Ну что имеем то имеем

Может, при поиске использовать "Формат" в извращенной форме?

Можно подробнее про извращения?


Запрос несколько не катит, в цикле идет перебор большого кол-ва документов, как-то запрос я там не вижу )) Хотя может я не слишком курю тему, просветите, если не затруднит. Zaval --> Zaval



Просмотр профиля

Загнать всю эту кучу доков в список значений. или в таблицу.

Сходил только что в киоск по морозцу.
ЗУПовские "Срезы. " садятся на опу при повторном принятии на работу. Вместо стандартного среза расписываем то же как нам нужно в запросе - профит.
Здесь, по-моему, решение - втом же духе

logist --> logist



Просмотр профиля

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