В Табличную Часть не выгружается только одно из значений, в чем может быть дело?
Всем добрый день. Буду очень благодарен за помощь, ибо я зашел в какой-то тупик...
Итак, в чем суть: есть справочник Ресурсные Спецификации (РС), табличную часть которого можно заполнять с помощью выгрузки данных из Excel-файла.
В целом все просто замечательно, код типовой, но есть нюанс. Есть колонка в ТЧ с названием "Статья калькуляции", тип данных - элементы соответствующего справочника. И я пробовал разные элементы (значения) вносить в сам Excel-файл - он их выгружает в ТЧ РС за исключением одного из элементов. Я проверял название, я копировал его из самого справочника Статьи калькуляции - ничего: именно это одно значение не записывается в ТЧ. Другие элементы этого справочника попадают в РС, а один из них - нет. Причем я смотрел через отладчик: на этапе выгрузки данных из самого файла все статьи калькуляции записываются в создаваемую таблицу значений, но оттуда только один элемент не попадает в ТЧ РС. Почему так - я вообще не понимаю, от слова совсем. Пробовал также составлять запрос в консоли, чтобы попытаться вытащить нужную мне ссылку на этот элемент по его названию, копируя его из файла - все работает, то есть, проблема не в его наименовании.
Насколько я понял, это произошло именно после одного из обновлений от 1С - на копии старой базы, к слову, такой проблемы нет.
Вообще не знаю, куда копать, это очень странно. Возможно, все очень просто по факту, но я, аки слепой котенок, не вижу этого. Буду очень признателен за помощь...
Итак, в чем суть: есть справочник Ресурсные Спецификации (РС), табличную часть которого можно заполнять с помощью выгрузки данных из Excel-файла.
В целом все просто замечательно, код типовой, но есть нюанс. Есть колонка в ТЧ с названием "Статья калькуляции", тип данных - элементы соответствующего справочника. И я пробовал разные элементы (значения) вносить в сам Excel-файл - он их выгружает в ТЧ РС за исключением одного из элементов. Я проверял название, я копировал его из самого справочника Статьи калькуляции - ничего: именно это одно значение не записывается в ТЧ. Другие элементы этого справочника попадают в РС, а один из них - нет. Причем я смотрел через отладчик: на этапе выгрузки данных из самого файла все статьи калькуляции записываются в создаваемую таблицу значений, но оттуда только один элемент не попадает в ТЧ РС. Почему так - я вообще не понимаю, от слова совсем. Пробовал также составлять запрос в консоли, чтобы попытаться вытащить нужную мне ссылку на этот элемент по его названию, копируя его из файла - все работает, то есть, проблема не в его наименовании.
Насколько я понял, это произошло именно после одного из обновлений от 1С - на копии старой базы, к слову, такой проблемы нет.
Вообще не знаю, куда копать, это очень странно. Возможно, все очень просто по факту, но я, аки слепой котенок, не вижу этого. Буду очень признателен за помощь...
Прикрепленные файлы:
По теме из базы знаний
- Автоматизация производства на 1С: планирование производства в «Управление производственным предприятием»
- Управление сборкой. Расширение для конфигурации СППР
- Переход с УПП на ERP с сохранением документов. Фантастика или реальность?
- [ED] Обмен для предыдущих версий - УНФ 1.6, УНФ 3.0 с EnterpriseData (универсальный формат обмена), правила обмена
- Опыт перехода с УТ 10 на УТ 11
Найденные решения
(7) Видимо, у меня уже совсем мозги поплыли от этой работы, но после перезагрузки сервера я решил еще раз попробовать отследить каждый шаг цикла и как происходит заполнение в нем - оказалось, что дело действительно в том, что дальше происходит внутри процедуры "ПриВводеНовойСтрокиСпецификации". Там внутри идет одна проверка, которая, как оказалось, в коде более старой базы просто скипается, и именно из-за нее все дальше рушится
В общем, спасибо всем большое за отклик, правда! По наводкам в итоге удалось дойти до сути.
В общем, спасибо всем большое за отклик, правда! По наводкам в итоге удалось дойти до сути.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)боюсь, что на ваши вопросы ответит только отладка процесса загрузки данных из файла.
Предполагаю, выполняется постобработка строки ТЧ после заполнения из файла и СК "Полуфабрикаты" по какой-то, известной только методологам 1С, просто не может быть использована.
Предполагаю, выполняется постобработка строки ТЧ после заполнения из файла и СК "Полуфабрикаты" по какой-то, известной только методологам 1С, просто не может быть использована.
(4) Так вот этим я и занимался...Вот этот простой кусок кода, где происходит вся магия - просто используется функция "ЗаполнитьЗначенияСвойств": вот именно на этом этапе происходит стыковка данных из создаваемой ТЗ на основе Excel-файла и ТЧ РС - как тут можно что-то еще глубже отследить..? Я бы и с радостью даже, но как...
ЗагруженныеДанные = ПолучитьИзВременногоХранилища(АдресЗагруженныхДанных); //ТаблицаЗначений
ИмяТЧ = ДополнительныеПараметры.ИмяТЧ;
ТабличнаяЧасть = Объект[ИмяТЧ];// ТабличнаяЧасть
ТабличнаяЧасть.Очистить();
Для Каждого Строка Из ЗагруженныеДанные Цикл
НоваяСтрока = ТабличнаяЧасть.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
НоваяСтрока.ЭтапРедактированиеПредставление = Строка.Этап;
НоваяСтрока.ЭтапРедактирование = Строка.Этап;
//++ НЕ УТКА
НоваяСтрока.ОперацияРедактированиеПредставление = Строка.Операция;
НоваяСтрока.ОперацияРедактирование = Строка.Операция;
//-- НЕ УТКА
НоваяСтрока.ЭлементПроизводственногоПроцессаПредставление = ПредставлениеЭлементаПроизводтвенногоПроцесса(НоваяСтрока);
ПриВводеНовойСтрокиСпецификации(ЭтотОбъект, ИмяТЧ, НоваяСтрока);
КонецЦикла;
Показать
(7) Если честно, я не думаю, что это сильно важно, так как я отслеживал по отладчику каждый шаг в рамках вот этого цикла. И вот есть у нас Таблица значений "ЗагруженныеДанные", где прочитаны все статьи калькуляции. Я также смотрю в содержание заполняемой ТЧ РС через табло значений - до процедуры "ЗаполнитьЗначенияСвойств" - строка пуста, после ее выполнения - строка заполняется, и только в случае полуфабрикатов это поле остается пустым...то есть, если какое-то программное ограничение и есть, то, мне кажется, оно должно быть где-то этого момента или вообще вне кода загрузки файла, разве нет?
Ну и, более того, саму процедуру "ПриВводеНовойСтрокиСпецификации()" я посмотрел и дошел в итоге до следующего кода. И так как в ДанныеСтроки еще до этого не попадает нужная статья калькуляции, то есть, там пустота, то в проверке условия срабатывает "Иначе"
Ну и, более того, саму процедуру "ПриВводеНовойСтрокиСпецификации()" я посмотрел и дошел в итоге до следующего кода. И так как в ДанныеСтроки еще до этого не попадает нужная статья калькуляции, то есть, там пустота, то в проверке условия срабатывает "Иначе"
Процедура ЗаполнитьСтатьюКалькуляцииПоУмолчанию(ДанныеСтроки)
Если УправлениеДаннымиОбИзделияхКлиентСервер.ПолуфабрикатПроизводимыйВПроцессе(ДанныеСтроки) Тогда
ДанныеСтроки.СтатьяКалькуляции = ПредопределенноеЗначение("Справочник.СтатьиКалькуляции.ПолуфабрикатыПроизводимыеВПроцессе");
Иначе
ДанныеСтроки.СтатьяКалькуляции = ПредопределенноеЗначение("Справочник.СтатьиКалькуляции.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
Показать
(9)
Значит нужно подняться чуть выше и разобраться как именно формируется ТЗ "ЗагруженныеДанные" и почему в ней СК пустое, хотя в файле данные есть.
только в случае полуфабрикатов это поле остается пустым...то есть, если какое-то программное ограничение и есть, то, мне кажется, оно должно быть где-то этого момента или вообще вне кода загрузки файла, разве нет?
Значит нужно подняться чуть выше и разобраться как именно формируется ТЗ "ЗагруженныеДанные" и почему в ней СК пустое, хотя в файле данные есть.
(13)хорошо. Если попробовать добавить в ТЗ "ЗагруженныеДанные" колонку "СпособПолученияМатериала" и заполнить ее значениями "ПроизводитсяНаЭтапе"/"ПроизвестиПоСпецификации" или в настройках загрузки данных задать значение жестко, проблема с СК "Полуфабрикаты" решится?
(7) Видимо, у меня уже совсем мозги поплыли от этой работы, но после перезагрузки сервера я решил еще раз попробовать отследить каждый шаг цикла и как происходит заполнение в нем - оказалось, что дело действительно в том, что дальше происходит внутри процедуры "ПриВводеНовойСтрокиСпецификации". Там внутри идет одна проверка, которая, как оказалось, в коде более старой базы просто скипается, и именно из-за нее все дальше рушится
В общем, спасибо всем большое за отклик, правда! По наводкам в итоге удалось дойти до сути.
В общем, спасибо всем большое за отклик, правда! По наводкам в итоге удалось дойти до сути.
(4) Спасибо за наводку в любом случае, эх. Возможно, дело действительно в каких-то ограничениях в совсем других местах кода, не связанных непосредственно с загрузкой данных из файла, однако, что странно - вручную-то эта статья калькуляции может быть использована, никаких ошибок при заполнении вручную, при записи не возникает
(15) но если бы было так - почему эти действия не срабатывают, когда вручную вносятся все те же значения? Никаких ограничений, ошибок - ничего не происходит. Пользователь спокойно может добавить эту статью калькуляций вручную, записать элемент справочника - и все, все будет хорошо...
(1)ДД, а если использовать "обходной маневр" - заполнять строки не процедурой "ЗаполнитьЗначенияСвойств", а по-старинке - поэлементно. Или хотя бы "поверху" для статьи калькуляции! Интересно, что в этом случае заполняет (я имею ввиду Справочники.... НайтиПоИменованию)
(20) Нет, дело было точно не в данных файла и не в их считывании, этот вариант еще сразу отсеялся после того, как я во время отладки смотрел, что попадает в таблицу значений из файла. Проблема была чуть дальше, и я наконец ее увидел. Благодарю вас за попытку разобраться в ситуации
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот