Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Документ.НайтиПоНомеру() и ...
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
logist
Есть документ с периодичностью нумерации "День". Длинна номера 8 символов, строка. Сам номер группирован, т.е. имеет вид 123 456.
Есть значение ИскомыйНомер - которое имеет такой же вид 123 456.

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

платформа 8,1,15. конфа самописная.
Zaval
Блин... группированный номер - изврат.
Может, при поиске использовать "Формат" в извращенной форме? Написать хитрый запрос...
logist
Цитата(Zaval @ 17.02.12, 20:19) необходимо зарегистрироваться для просмотра ссылки
Блин... группированный номер - изврат.

Ну что имеем то имеем smile.gif

Цитата(Zaval @ 17.02.12, 20:19) необходимо зарегистрироваться для просмотра ссылки
Может, при поиске использовать "Формат" в извращенной форме?

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

Цитата(Zaval @ 17.02.12, 20:19) необходимо зарегистрироваться для просмотра ссылки
Написать хитрый запрос...

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

Сходил только что в киоск по морозцу...
ЗУПовские "Срезы..." садятся на опу при повторном принятии на работу... Вместо стандартного среза расписываем то же как нам нужно в запросе - профит.
Здесь, по-моему, решение - втом же духе
logist
Цитата(Zaval @ 17.02.12, 20:42) необходимо зарегистрироваться для просмотра ссылки
Загнать всю эту кучу доков в список значений... или в таблицу.

Доков нет, их найти надо. Есть ТЗ полученная запросом в sql, в ней колонка с номерами доков, вот для каждого номера нужно получить ссылку на сам док.
MATEVI
Если я правильно понял.
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.Номер В(&МасНомер)


где масНомер массив номеров ну или СЗ с номерами.
logist
Цитата(MATEVI @ 17.02.12, 21:05) необходимо зарегистрироваться для просмотра ссылки
Если я правильно понял.

Не, эт я не совсем правильно объяснил, в ТЗ есть еще куча колонок, мне надо дополнить ее колонкой со ссылками на найденные по номеру документы.
5_kopeek
Если периодичность нумерации -- день, то как можно без даты найти точное соответствие документа номеру? один и тот же номер может встречаться каждый день.
MATEVI
Цитата(logist @ 17.02.12, 21:24) необходимо зарегистрироваться для просмотра ссылки
Не, эт я не совсем правильно объяснил, в ТЗ есть еще куча колонок, мне надо дополнить ее колонкой со ссылками на найденные по номеру документы.

Ну так навскидку сформировать ТЗ со всеми документами и там искать. А из скуля дату к номеру нельзя вытащить?
logist
Цитата(5_kopeek @ 17.02.12, 21:54) необходимо зарегистрироваться для просмотра ссылки
Если периодичность нумерации -- день, то как можно без даты найти точное соответствие документа номеру? один и тот же номер может встречаться каждый день.

Так вот проблема в том, что по факту документы не нумеруются в пределах дня, программно присваивается номер по типу "не периодический".

Цитата(MATEVI @ 17.02.12, 23:26) необходимо зарегистрироваться для просмотра ссылки
Ну так навскидку сформировать ТЗ со всеми документами и там искать.

Это как? smile.gif

Цитата(MATEVI @ 17.02.12, 23:26) необходимо зарегистрироваться для просмотра ссылки
А из скуля дату к номеру нельзя вытащить?

Теоретически можно, но как-то не хочется туда лезть так глубоко.
5_kopeek
Цитата(logist @ 18.02.12, 0:36) необходимо зарегистрироваться для просмотра ссылки
Так вот проблема в том, что по факту документы не нумеруются в пределах дня, программно присваивается номер по типу "не периодический".

Если так, то изменить тип периодичности на непериодический и искать с помощью НайтиПоНомеру)
logist
Цитата(5_kopeek @ 18.02.12, 1:16) необходимо зарегистрироваться для просмотра ссылки
изменить тип периодичности на непериодический

Я рассматривал этот вариант, до понедельника буду держать его на карандаше smile.gif
5_kopeek
Цитата(logist @ 18.02.12, 0:36) необходимо зарегистрироваться для просмотра ссылки
Это как? smile.gif

В новой ТЗ (сформированной запросом с отбором по номерам, выгруженным в массив из колонки с номерами существующей ТЗ) вынести номер дока в отдельную колонку и по ней искать.
Домовик
Цитата(logist @ 17.02.12, 21:23) необходимо зарегистрироваться для просмотра ссылки
Я рассматривал этот вариант, до понедельника буду держать его на карандаше smile.gif


не находит именно из-за установленной периодичности. этот вариант не просто рассматривать - это самое простое решение при условии, что по факту нумерация без периода.
GreenFox
Вы могли бы внятно сформулировать задачу, а то Вам на Ваш первый вопрос ответили - поиск всех документов с заданным номером осуществляется запросом и это работает независимо от периодичности, но потом выясняется, что это не вся задача ибо там задействованы еще ТЗ.

Сформулируйте задачу полностью, и Вам помогут, я например из того что тут написано ничего не понял, хотя болваном в 1С себя не считаю.
Batchir
Ну можно так в качестве альтернативного решения:

МассивКодов = тз.ВыгрузитьКолонку("НомерДок");
Запрос  = Новый Запрос;
Запрос.Текст = "";
РЗ = Запрос.Выполнить();
МассивДокументов = РЗ.Выгрузить().ВыгрузитьКолонку("Ссылка");
тз.ЗагрузитьКолонку(МассивДокументов,"ДокСсылка");


Только результат запроса должен содержать ссылки для всех кодов. Если ссылка не найдена, то пустая. И сортировка тоже должна соотвествовать сортировке в МассивКодов.
Vofka
Цитата
Запрос несколько не катит, в цикле идет перебор большого кол-ва документов, как-то запрос я там не вижу

НайтиПоНомеру() - тот же запрос, только на более низком уровне.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.