Проблема с добавление данных в уже существующий документ #687266


#0 by Валидатор
Такая задача: конфа 1с 8.2 КА, если есть документ ПТиУ с номером, по которому мы ищем, то данные добавляются в него, если такого документа нет, то создается новый, С созданием нового все хорошо, а вот с добавление в уже существующий проблемы, летит ошибка: Значение поля "Номер" не уникально Процедура ОсновныеДействияФормыОсновныеДействияФормыВыполнить(Кнопка)          Сообщить("Загрузка данных начата");           КонецПроцедуры
#1 by Холодильник
плохой негодный код
#2 by Валидатор
есть варианты почему ошибка летит? по коду не должно же
#3 by Валидатор
такими ответами иди на инфостарт набивай себе бонусы
#4 by Sabbath
по идее, надо посмотреть в отладчике, какой там номер у документа, почему он такой и почему не уникальный
#5 by Поросенок Петр
+100500 Код херовый.
#6 by Валидатор
чем именно?
#7 by Господин ПЖ
идиотизм какой-то... сначала приводить тип колонки к строке = 40, потом совать в нее сокрлп
#8 by Sabbath
проблема все равно не из-за херового кода имхо))
#9 by Валидатор
хоть один нормальынй попался)
#10 by Sabbath
Мне понравилась переменная Строчка, это мило :)
#11 by Валидатор
короче если по существу, может кто что сказать, а не сидеть тут тролить, можете собраться в кружок и потом потролить
#12 by Холодильник
ты ищещь номер дока в каком-то массиве, если не находишь - создаешь новый. но искать-то нужно среди реальных документов, или массив заполнять правильно. тогда и ошибки с неуникальностью номеров не будет
#13 by Валидатор
что значит среди реальных документов? Поиск и так идет по существующим докам
#14 by Apokalipsec
нормальные это и , а ты научись адекватно воспринимать критику. Документ - это что у тебя? не вижу где ты получаешь какой-то документ в эту переменную чтобы что-то туда добавлять.
#15 by Поросенок Петр
- Одна процедура делаёт все, смешивая в себе разные уровни абстракции. - Тело цикла порвано контекстом документа, т.е. его невозможно просто вынести в отдельную процедуру. Т.е. код ориентирован не на процедурность, а на строчки. Из-за него. Если бы всё было разложено по полкам  (т.е. процедурам), ошибка была бы очевидна, или ,скорее всего, не появилось бы.
#16 by Sabbath
А, так он там присваивает какой-то номер, не увидел, тогда да, проблема в коде.
#17 by Sabbath
+ но все равно надо как в , т.е. прогнать в отладчике и увидеть
#18 by Валидатор
Объясните тогда, как сделать поиск документа, и если документ с таким номером уже существует, то в него пишем данные,если нет то создаем новый?
#19 by Холодильник
не. код ужасен, даже разбираться с ним лень
#20 by Холодильник
запросом, епт. либо найтиПоНомеру
#21 by Sabbath
ты новому документу даешь какой-то номер, который уже есть, зачем?
#22 by Валидатор
там где создание документа он только в начале попадает, потом в первой части цикла обходит все и ошибки выкладывает
#23 by Sabbath
Так ты в отладчике посмотри, что там у тебя с номером творится и почему такой есть уже. Честно говоря, тяжеловато вкуривать в этот код))
#24 by Валидатор
Да блин, еще раз 1. создали документ с номером 172, заполнили 2 строчки 2. запустили обработку, выбрали файл, которыми заполнять наш документ 3. в файле, из которого грузим данные есть документ с номером 172 4. ищем есть ли у нас среди ПТиУ документ с номером 172, если да, то просто добавляем в него данные, если документа с номером 172 нет, то создаем его, и добавляем в него данные
#25 by Sabbath
ну так ошибки тебе говорит, что такой номер уже есть в базе, в этом и косяк.
#26 by Валидатор
там просто получается что когда я гружу номер из файла он такого вида: "172", а в номер документа пишется "172    " сокрЛП не помогает в данном случае(9
#27 by Валидатор
тупо не ищется по номеру документа, блин, че за херня
#28 by Валидатор
Решил запрос делать и в нее свою ТЗ засовывать, чтобы потом группировками обходить, но летит ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Выполнить) почему? вот запрос:
#29 by hhhh
там еще дату надо указывать при поиске, Семен Сененыч.
#30 by Enders
У тебя одинаковое название реквизита: "втЗагрузкаДанных.Номенклатура" и Справочника:"Справочник.Номенклатура КАК Номенклатура" Оно и ругается
#31 by Валидатор
потому что когда идет поиск документа по номеру - искомое значение "172", а в номере документа "172    ", и никаки не обрезаются эти пробелы
#32 by catena
Врешь, это не играет рояля
#33 by Валидатор
да что врешь, вот пример кода: Для каждого Строка из ТаблицаЗначений Цикл Документ = Документы.ПоступлениеТоваровУслуг.НайтиПономеру(НомерНакладной); в НомерНакладной попадает 172, а в следующей строке поиска ничего не находится, хотя документ существует в базе
#34 by catena
Тебе же сказали: у НайтиПоНомеру ДВА параметра: Номер и ДАТА.
#35 by Валидатор
Документ = Документы.ПоступлениеТоваровУслуг.НайтиПономеру(НомерНакладной, строка.ДатаНакладной); вот так точнее
#36 by catena
строка.ДатаНакладной - тип какой?
#37 by Валидатор
дата
#38 by Валидатор
так вроде документ нашелся, но теперь летит ошибка, что документ недоступен для изменения, почему? оО Документ.ПолучитьОбъект я сделал
#39 by catena
А НомерНакладной?
#40 by catena
Пока ты выдаешь информацию частями и по наводящим вопросам, сказать что-то очень сложно. Где-то там ошибка, поэтому.
#41 by ЧессМастер
вот так точнее Документ = Документы.ПоступлениеТоваровУслуг.НайтиПономеру(НомерНакладной, ДатаНакладной).ПолучитьОбъент
#42 by ЧессМастер
+ и дальше с этим Документ делай что хочешь - добавляй строки записывай и проводи
#43 by Валидатор
да уже понял, сделал это, нашел там в чем проблема была, теперь другой вопрос: у меян на форме есть поле - контрагент, в него понятно откуда и что берется, при открытии этого поля предлагается из справочника одноименного выбрать контрагента, как прописать жеский отбор чтобы брались контрагенты только из папка "Поставщики", и отбор нельзя было снять?
#44 by ЧессМастер
при начале редактирования этого поля формы
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С