neen
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Объясните, что не так. Пишу такой вод код: Код: ... Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ ... "; ... Выборка=Запрос.Выполнить().Выгрузить(); Если Выборка.Количество()=0 Тогда Продолжить КонецЕсли; // Нету ... Для Каждого СтрокаВыборки Из Выборка Цикл СтрокаВыборки. ...=СтрокаВыборки.Рекв=Формат(F(СтрокаВыборки.Рекв),"ЧЦ=11; ЧВН=; ЧГ=0") КонецЦикла; Выборка.Сортировать("Рекв ВОЗР"); ПервЗнРекв=Число(Выборка[0].Рекв); ПослЗнРекв=Число(Выборка[Выборка.Количество()-1].Рекв); Для Н=ПервЗнРекв По ПослЗнРекв Цикл СтрокаВыборки=Выборка.Найти(Формат(Н,"ЧЦ=11; ЧВН=; ЧГ=0"),"Рекв"); Если СтрокаВыборки<>Неопределено Тогда Продолжить КонецЕсли; // Всё хорошо СтрОписание="Бла-бла-бла"; ... НайденнаяЗадача=Задачи.ЗадачиПользователя.НайтиПоРеквизиту("Описание",СтрОписание); Если НайденнаяЗадача<>Неопределено Тогда Продолжить КонецЕсли; НоваяЗадача=Задачи.ЗадачиПользователя.СоздатьЗадачу(); НоваяЗадача.Описание=СтрОписание; ... #Если НаКлиенте Тогда Сообщить(СтрОписание); #КонецЕсли ... КонецЦикла; | Процедура вызывается из предопределенного регламентного задания. Должна проверять не создавалась ли уже задача с таким описанием (косяк пользователя) и если нет, то создавать. Дальше задача пользователя исправить и отметиться о выполнении. Но... Цикл делает один проход, находит первую ошибку, проверяет задачу, если нет, создаёт и на втором проходе независимо от создавалась такая задача или нет на строке Код: НайденнаяЗадача=Задачи.ЗадачиПользователя.НайтиПоРеквизиту("Описание",СтрОписание); | происходит переход в модуль обычного приложения в процедуру Код: // процедура служит для поддержки работы регламентных заданий в файловой версии Процедура ПоддержкаРегламентныхЗаданиеДляФайловойВерсии() Экспорт ВыполнитьОбработкуЗаданий(); КонецПроцедуры | После чего всё прекращается без сообщений о каких либо ошибках. Заменил строки Код: НайденнаяЗадача=Задачи.ЗадачиПользователя.НайтиПоРеквизиту("Описание",СтрОписание); Если НайденнаяЗадача<>Неопределено Тогда Продолжить КонецЕсли; | на выборку запросом с проверкой на наличие строк в выборке (если есть, значит создавалась) и всё работает нормально, а вот изначальный мне не понятно почему не работал. Добавлено: novic С ходу не скажу, но естьформат ШК EAN8. Как раз 7 значный код и используется, а 8й контрольный расчитывается по какой-то формуле (в инете валяются, когда-то давно писал). Тогда никакими нулями добивать не надо. Но даже при EAN13 как у тя тоже должно работать, ток код надо самому доделывать до 12ти знаков, а 13й по формуле расчитывается. |