powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / маска поиска по реквизиту
7 сообщений из 7, страница 1 из 1
маска поиска по реквизиту
    #35431325
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
версия 7.7 торговля и склад 9.2

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

Функция НайтиВСправочнике(справ, код, реквизит, значение)
спр = СоздатьОбъект(справ);
Если спр.НайтиПоКоду(код, 0)=0 Тогда
Если пустоезначение(реквизит)=0 тогда
Если спр.НайтиПоРеквизиту(реквизит, значение, 1)= 0 Тогда
Если спр.НайтиПоНаименованию(значение,0, 1) = 0 Тогда
Сообщить("Код "+код+" в справочнике "+справ+" не найден");
Возврат "";
Иначе
Возврат спр.ТекущийЭлемент();
КонецЕсли
Иначе
Возврат спр.ТекущийЭлемент();
КонецЕсли
КонецЕсли
Иначе
Возврат спр.ТекущийЭлемент();
КонецЕсли;
КонецФункции

и вызываю ее:
Юрлицо = НайтиВСправочнике("справочник.ЮрЛица", "", "ИНН", ИННПлательщик);

только проблема что в торговле пишут
инн\кпп, как будто нельзя было сделать отдельные поля!
так эту строку все пишут как хотят! \ или / или пробел... в идеале хочу вставить код, который сравнивает пришедшее в функцию значение реквизита с 10 первыми символами оного, чтобы выудить все четко.

Научите, пожалуйста.
______________________________
Все из Бразилии. www.brawoo.ru
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35431872
Provod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам ничего не нужно писать есть метод у справочника

НайтиПоРеквизиту(<?>,,);

Синтаксис:
НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>)
Назначение:
Найти элемент справочника по значению реквизита.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<ИмяРеквизита> - строка с наименованием реквизита;
<Значение> - значение реквизита для поиска;
<ФлагГлобальногоПоиска> - флаг поиска:
0 - поиск выполняется в пределах подчинения справочника,
1 - поиск выполняется по всему справочнику.
Замечание:
Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''.
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

Теперь далее скорее всего в конфигурации в которой вы пишете есть уже такая функция возвращающая значение ИНН несмотря на то что они оба в одном поле поищите в глобальнике по "ИНН"
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35433205
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так в это-то и дело, что не находит он компанию, если у нее указано через слэш.
______________________________
Все из Бразилии. www.brawoo.ru
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35433212
Brasileiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы код-то мой читали, разве я там не пользоватлся данным методом справочника?
Я конечно, лох в вашем 1С, но программист я с головой, тупо спрашивать, не попробовав не стану.
______________________________
Все из Бразилии. www.brawoo.ru
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35434281
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Brasileiroтолько проблема что в торговле пишут
инн\кпп, как будто нельзя было сделать отдельные поля!
так эту строку все пишут как хотят! \ или / или пробел... в идеале хочу вставить код, который сравнивает пришедшее в функцию значение реквизита с 10 первыми символами оного, чтобы выудить все четко.
www.brawoo.ru

Мнение дилетанта.
Во-первых, искать "по первым 10-ти символам" реквизита - абсолютно бессмыссленное занятие, тем более, что реквизит никому не обязан быть типом "Строка".
Во-вторых, поле ИНН\КПП имеет такую длину, чтобы ввести только такую строку и не более (меньше можно).
В-третьих, кто тебе сказл такую глупость, что длина ИНН обязательно равна 10? Это ложь.
В-четвертых, если ты не умеешь работать в 1С с текстовыми строками (и не можешь отработать ситуацию различного/ошибочного ввода ИНН/КПП), то тебе не нужно заниматься программированием, а просто пригласить программиста.
В-пятых, по-хорошему, следовало бы назначАть этому полю (ИНН/КПП) "маски ввода" в диалоге формы, но, поскольку, у тебя проблема "в-четвертых" и плохое знание предмета, тебе лучше оставить эту проблему в покое - будет только лучше ...
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35434364
Provod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче можно так 1-й вариант
1) Создаешь новый реквизит в котором будет лежать только ИНН !!! без КПП
Назовем его к примеру ИННбезКПП
2)Пишешь обработку которая из имеющегося поля в котором ИНН и КПП смешаны выдергивает ИНН
3)ПОльзуешь метод языка который я тебе описал выше


Вариант 2

Запросом можно вытащить я уже не помню есть там толи Подстрока толи Подобно и ты получишь нужную тебе фирму выбирай

P.S. Сори что не очень информативно про 2-ой вариант просто я 7-ку пытаюсь забыть ))) и вроде получается
...
Рейтинг: 0 / 0
маска поиска по реквизиту
    #35434834
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProvodКороче можно так 1-й вариант
1) Создаешь новый реквизит в котором будет лежать только ИНН !!! без КПП
Назовем его к примеру ИННбезКПП
2)Пишешь обработку которая из имеющегося поля в котором ИНН и КПП смешаны выдергивает ИНН
3)ПОльзуешь метод языка который я тебе описал выше


Вариант 2

Запросом можно вытащить я уже не помню есть там толи Подстрока толи Подобно и ты получишь нужную тебе фирму выбирай

P.S. Сори что не очень информативно про 2-ой вариант просто я 7-ку пытаюсь забыть ))) и вроде получается В 2 варианте вставляешь условие (Найти(ИНН,ИННПоиска)<>0)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / маска поиска по реквизиту
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]