|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
версия 7.7 торговля и склад 9.2 я, конечно, лох в 1С-программировании, но во всех языках есть возможность использовать некую функцию, чтобы искать по маске. вот код, который написал: Функция НайтиВСправочнике(справ, код, реквизит, значение) спр = СоздатьОбъект(справ); Если спр.НайтиПоКоду(код, 0)=0 Тогда Если пустоезначение(реквизит)=0 тогда Если спр.НайтиПоРеквизиту(реквизит, значение, 1)= 0 Тогда Если спр.НайтиПоНаименованию(значение,0, 1) = 0 Тогда Сообщить("Код "+код+" в справочнике "+справ+" не найден"); Возврат ""; Иначе Возврат спр.ТекущийЭлемент(); КонецЕсли Иначе Возврат спр.ТекущийЭлемент(); КонецЕсли КонецЕсли Иначе Возврат спр.ТекущийЭлемент(); КонецЕсли; КонецФункции и вызываю ее: Юрлицо = НайтиВСправочнике("справочник.ЮрЛица", "", "ИНН", ИННПлательщик); только проблема что в торговле пишут инн\кпп, как будто нельзя было сделать отдельные поля! так эту строку все пишут как хотят! \ или / или пробел... в идеале хочу вставить код, который сравнивает пришедшее в функцию значение реквизита с 10 первыми символами оного, чтобы выудить все четко. Научите, пожалуйста. ______________________________ Все из Бразилии. www.brawoo.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2008, 14:42 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
Вам ничего не нужно писать есть метод у справочника НайтиПоРеквизиту(<?>,,); Синтаксис: НайтиПоРеквизиту(<ИмяРеквизита>,<Значение>,<ФлагГлобальногоПоиска>) Назначение: Найти элемент справочника по значению реквизита. Возвращает: 1 - если действие выполнено; 0 - если действие не выполнено (элемент не найден). Параметры: <ИмяРеквизита> - строка с наименованием реквизита; <Значение> - значение реквизита для поиска; <ФлагГлобальногоПоиска> - флаг поиска: 0 - поиск выполняется в пределах подчинения справочника, 1 - поиск выполняется по всему справочнику. Замечание: Метод можно использовать только для реквизитов с установленным признаком ''Сортировка''. Метод можно использовать только для объектов, созданных функцией СоздатьОбъект. Теперь далее скорее всего в конфигурации в которой вы пишете есть уже такая функция возвращающая значение ИНН несмотря на то что они оба в одном поле поищите в глобальнике по "ИНН" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2008, 17:47 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
Так в это-то и дело, что не находит он компанию, если у нее указано через слэш. ______________________________ Все из Бразилии. www.brawoo.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2008, 11:44 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
А вы код-то мой читали, разве я там не пользоватлся данным методом справочника? Я конечно, лох в вашем 1С, но программист я с головой, тупо спрашивать, не попробовав не стану. ______________________________ Все из Бразилии. www.brawoo.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2008, 11:45 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
Brasileiroтолько проблема что в торговле пишут инн\кпп, как будто нельзя было сделать отдельные поля! так эту строку все пишут как хотят! \ или / или пробел... в идеале хочу вставить код, который сравнивает пришедшее в функцию значение реквизита с 10 первыми символами оного, чтобы выудить все четко. www.brawoo.ru Мнение дилетанта. Во-первых, искать "по первым 10-ти символам" реквизита - абсолютно бессмыссленное занятие, тем более, что реквизит никому не обязан быть типом "Строка". Во-вторых, поле ИНН\КПП имеет такую длину, чтобы ввести только такую строку и не более (меньше можно). В-третьих, кто тебе сказл такую глупость, что длина ИНН обязательно равна 10? Это ложь. В-четвертых, если ты не умеешь работать в 1С с текстовыми строками (и не можешь отработать ситуацию различного/ошибочного ввода ИНН/КПП), то тебе не нужно заниматься программированием, а просто пригласить программиста. В-пятых, по-хорошему, следовало бы назначАть этому полю (ИНН/КПП) "маски ввода" в диалоге формы, но, поскольку, у тебя проблема "в-четвертых" и плохое знание предмета, тебе лучше оставить эту проблему в покое - будет только лучше ... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2008, 16:12 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
Короче можно так 1-й вариант 1) Создаешь новый реквизит в котором будет лежать только ИНН !!! без КПП Назовем его к примеру ИННбезКПП 2)Пишешь обработку которая из имеющегося поля в котором ИНН и КПП смешаны выдергивает ИНН 3)ПОльзуешь метод языка который я тебе описал выше Вариант 2 Запросом можно вытащить я уже не помню есть там толи Подстрока толи Подобно и ты получишь нужную тебе фирму выбирай P.S. Сори что не очень информативно про 2-ой вариант просто я 7-ку пытаюсь забыть ))) и вроде получается ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2008, 16:31 |
|
маска поиска по реквизиту
|
|||
---|---|---|---|
#18+
ProvodКороче можно так 1-й вариант 1) Создаешь новый реквизит в котором будет лежать только ИНН !!! без КПП Назовем его к примеру ИННбезКПП 2)Пишешь обработку которая из имеющегося поля в котором ИНН и КПП смешаны выдергивает ИНН 3)ПОльзуешь метод языка который я тебе описал выше Вариант 2 Запросом можно вытащить я уже не помню есть там толи Подстрока толи Подобно и ты получишь нужную тебе фирму выбирай P.S. Сори что не очень информативно про 2-ой вариант просто я 7-ку пытаюсь забыть ))) и вроде получается В 2 варианте вставляешь условие (Найти(ИНН,ИННПоиска)<>0) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2008, 17:58 |
|
|
start [/forum/topic.php?fid=28&fpage=163&tid=1524598]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
88ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 198ms |
0 / 0 |