Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите с запросом          
ekris Подменю пользователя
сообщение 11.04.13, 8:03
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

Гуру 1С помогите! Задача следующая есть в справочнике Контрагенты поле КодпоЕДРПОУ, в существующей базе правильно введены только первые 7 чисел, есть входящая база с правильным ОКПО, нужно запросом найти код и заменить на правильный.
Вот запрос, но он пока не работает...
ЗапросПоискаКонтрагента = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
                                                    |    Контрагенты.Ссылка,
                                                    |    Контрагенты.КодПоЕДРПОУ КАК ОКПО,
                                                    |    Контрагенты.Наименование
                                                    |ИЗ
                                                    |    Справочник.Контрагенты КАК Контрагенты
                                                    |ГДЕ
                                |Контрагенты.КодПоЕДРПОУ ПОДОБНО &КонтрагентОКПО");
                                                                
            ЗапросПоискаКонтрагента.УстановитьПараметр("КонтрагентОКПО", Лев(ОКПОКонтрагента,7)+"%");
            ВыборкаПоиска = ЗапросПоискаКонтрагента.Выполнить().Выгрузить();
            
            //Ищем контрагента по ОКПО
            ПараметрыОтбора = Новый Структура;
            ПараметрыОтбора.Вставить("ОКПО", Лев(ОКПОКонтрагента,7)+"%");
            НайденныеКонтрагенты = ВыборкаПоиска.НайтиСтроки(ПараметрыОтбора);

и как потом записать в справочник правильное значение

Vofka Подменю пользователя
сообщение 11.04.13, 8:06
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

А причем тут запрос? Запрос Выполняется как надо? Проблема в том, что вы хз как справочник записать?

logist Подменю пользователя
сообщение 11.04.13, 8:13
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

А я вообще не понял, запрос ищет контрагента и потом в единственном результате выполняется еще раз поиск... фигня какая-то smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: ekris,

ekris Подменю пользователя
сообщение 11.04.13, 8:21
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

В том то и проблема, что запрос не выполняется. Количество найденных 0, хотя они точно есть.

Так подскажите что исправить, потому что запрос из стандартной обработки, немного подкорректированный. И конечно хз как перезаписать ОКПО, это уже второй к вам вопрос.

pablo Подменю пользователя
сообщение 11.04.13, 8:25
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

У вас переменная ОКПОКонтрагента как появляется? Не преобразованием ли числового значения в строковое через функцию строка? Если да, то у вас в этой переменной пробелы затесались.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Petre Подменю пользователя
сообщение 11.04.13, 8:25
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Я бы соединил существующую базу кодов с таблицей правильных кодов одним запросом, а потом делал запись.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

ekris Подменю пользователя
сообщение 11.04.13, 8:30
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(pablo @ 11.04.13, 9:25) *
У вас переменная ОКПОКонтрагента как появляется? Не преобразованием ли числового значения в строковое через функцию строка? Если да, то у вас в этой переменной пробелы затесались.


Нет, пробелов там точно нет.

Цитата(Petre @ 11.04.13, 9:25) *
Я бы соединил существующую базу кодов с таблицей правильных кодов одним запросом, а потом делал запись.



А можно это как-то поподробнее

pablo Подменю пользователя
сообщение 11.04.13, 8:33
Сообщение #8

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
Нет, пробелов там точно нет.

А в базе (неправильной) лидирующих пробелов тоже нет?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Petre Подменю пользователя
сообщение 11.04.13, 8:33
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Передать ТЗ правильных кодов параметром в запрос, сделать левое соединение существующих кодов с переданной ТЗ, а потом обработать в цикле результат с записью справочников.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

ekris Подменю пользователя
сообщение 11.04.13, 8:35
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(pablo @ 11.04.13, 9:33) *
А в базе (неправильной) лидирующих пробелов тоже нет?


да, пробелов тоже нет, при отладке видно, что числа все правильные, не корректно работает запрос скорее всего.

Vofka Подменю пользователя
сообщение 11.04.13, 9:03
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

А так
ЗапросПоискаКонтрагента.УстановитьПараметр("КонтрагентОКПО", "%"+Лев(ОКПОКонтрагента,7)+"%");

?

Petre Подменю пользователя
сообщение 11.04.13, 9:31
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Как logist уже сказал, в этом нет смысла:
            //Ищем контрагента по ОКПО
            ПараметрыОтбора = Новый Структура;
            ПараметрыОтбора.Вставить("ОКПО", Лев(ОКПОКонтрагента,7)+"%");
            НайденныеКонтрагенты = ВыборкаПоиска.НайтиСтроки(ПараметрыОтбора);


Да и разве в таких поисках поддерживаются регулярные выражения?

Сообщение отредактировал Petre - 11.04.13, 9:36


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

World1С Подменю пользователя
сообщение 11.04.13, 10:35
Сообщение #13

Оратор
Иконка группы
Квалифицированному 1С программисту
Группа: Местный
Сообщений: 358
Из: г.Луганск, обл.Луганская
Спасибо сказали: 110 раз
Рейтинг: 0

|ГДЕ
|Контрагенты.КодПоЕДРПОУ ПОДОБНО &КонтрагентОКПО

ЗапросПоискаКонтрагента.УстановитьПараметр("КонтрагентОКПО", Лев(ОКПОКонтрагента,7)+"%");


Почему условие подобно?

|ГДЕ
|Контрагенты.КодПоЕДРПОУ = &КонтрагентОКПО

ЗапросПоискаКонтрагента.УстановитьПараметр("КонтрагентОКПО", Лев(ОКПОКонтрагента,7));


Так сработает

|ГДЕ
|Контрагенты.КодПоЕДРПОУ В (&КонтрагентОКПО)

ЗапросПоискаКонтрагента.УстановитьПараметр("КонтрагентОКПО", -СписокЗначений-));


Или так.
Только в последнем примере параметр запроса "КонтрагентОКПО" должно содержать тип СписокЗначений, Массив, ТаблицаЗначений

Цитата
Да и разве в таких поисках поддерживаются регулярные выражения?


нет не поддерживается.

Сообщение отредактировал World1С - 11.04.13, 10:37


Signature
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности.
Оскар Уайлд

Petre Подменю пользователя
сообщение 11.04.13, 10:47
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Цитата(World1С @ 11.04.13, 11:35) *
Почему условие подобно?

Потому что "правильно введены только первые 7 чисел", а не "введены только первые 7 чисел".
Думаю, под
Цитата
Количество найденных 0, хотя они точно есть.

автор имел ввиду НайденныеКонтрагенты, а не результат запроса.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

ekris Подменю пользователя
сообщение 11.04.13, 13:12
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо Логисту icon_beer17.gif , надо было всего лишь убрать 2-й отбор... Зачем он был в типовой конфигурации думать уже не буду.

Vofka Подменю пользователя
сообщение 11.04.13, 13:33
Сообщение #16

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

ekris, зачем писать, что проблема в запросе? Зла не хватает. icon_cuss.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.04.24, 1:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!