В чем может быть проблема при обмене?

1. VID1234 147 13.08.20 09:05 Сейчас в теме
Здравствуйте. Не понятно по каким причинам появилась такая ошибка при обмене, версии конфигураций актуальные УТ и БП.
Событие: Отправка.
Обработчик: ПриОбработкеПОД.
ПОД: Документ_ВнутреннееПотреблениеТоваров_Отправка.
Объект: Документ объект: Внутреннее потребление товаров, Списание на расходы 0РУТ-000017 от 03.08.2020 18:00:08 (e1cib/data/Документ.ВнутреннееПотреблениеТоваров?ref=9fc694de800b3d8d11ead59a04edb39e).

Ошибка выполнения обработчика.
Преобразование значения к типу Булево не может быть выполнено
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(47324)}:        Если Строка.ВыгружатьУпаковки И ЗначениеЗаполнено(Строка.УпаковкаСсылка) Тогда
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(47528)}:                ЗаполнитьУпаковкуСтрокиТЧ(КомпонентыОбмена, Строка, УпаковкаПоДаннымЗапроса);
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(1157)}:        ЗаполнитьХарактеристикуУпаковкуВТЧ(КомпонентыОбмена, СобственныеТовары);
{ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(54271)}:        ПОД_Документ_ВнутреннееПотреблениеТоваров_Отправка_ПриОбрабо<wbrтке(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6202)}:        МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ПравилоОбработки.ПриОбработке, СтруктураПараметров);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(649)}:    ПриОбработкеПОД(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(3632)}:                    ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Данные);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(529)}:        ВыполнитьВыгрузкуЗарегистрированныхДанных(КомпонентыОбмена, НомерОтправленного);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(216)}:            ОбменДаннымиXDTOСервер.ПроизвестиВыгрузкуДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6831)}:        ОбработкаОбменаДаннымиXML.ВыполнитьВыгрузкуДанных(ОбработкаДляЗагрузкиДанных);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(3864)}:            ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСо<wbrединению(Отказ,
{Обработка.ВыполнениеОбменаДанными.МодульМенеджера(34)}:    ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
{(1)}:Обработки.ВыполнениеОбменаДанными.ВыполнитьЗапускОбменаДанными(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4883)}:    Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1026)}:        ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1016)}:        ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
.
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MikhailDr 13.08.20 09:12 Сейчас в теме
(1)
Строка.ВыгружатьУпаковки И ЗначениеЗаполнено(Строка.УпаковкаСсылка)


Предположу, что здесь вы получаете "Неопределено" в одном из параметров
3. VID1234 147 13.08.20 09:17 Сейчас в теме
(2)
Строка.ВыгружатьУпаковки И ЗначениеЗаполнено

Так в том документе нет таких полей, параметров
Прикрепленные файлы:
4. MikhailDr 13.08.20 09:24 Сейчас в теме
(3) Строка это скорее всего строка табличной части, что на вкладке товары находится?

Если таких реквизитов нет, то ожидаемо происходит ошибка. Неопределено нельзя привести к значению булево и мы получаем ошибку из текста сообщения "Преобразование значения к типу Булево не может быть выполнено"

Правила обмена я так понимаю доработаны?

Можно посмотреть "МенеджерОбменаЧерезУниверсальныйФормат", ошибка ссылается на код из этого модуля.
5. VID1234 147 13.08.20 09:26 Сейчас в теме
(4) Да, но они работали, а теперь нет!
6. MikhailDr 13.08.20 09:27 Сейчас в теме
(5) Найдите в модуле "МенеджерОбменаЧерезУниверсальныйФормат" вот эту строку "Если Строка.ВыгружатьУпаковки И ЗначениеЗаполнено(Строка.УпаковкаСсылка) Тогда"
7. VID1234 147 13.08.20 09:31 Сейчас в теме
(6)
Если Строка.ВыгружатьУпаковки И ЗначениеЗаполнено(Строка.УпаковкаСсылка) Тогда

Процедура ЗаполнитьУпаковкуСтрокиТЧ(КомпонентыОбмена, Строка, ПоДаннымЗапроса = Истина)
    Если ПоДаннымЗапроса Тогда
        Если Строка.ВыгружатьУпаковки И ЗначениеЗаполнено(Строка.УпаковкаСсылка) Тогда
            Если Строка.УпаковкаНоменклатуры Тогда
                Строка.Упаковка = Строка.УпаковкаСсылка;
            Иначе
                Упаковка = Новый Структура();
                Упаковка.Вставить("Наименование",     Строка.УпаковкаНаименование);
                Упаковка.Вставить("ЕдиницаИзмерения", Строка.УпаковкаЕдиницаИзмерения);
                Упаковка.Вставить("Высота",           Строка.УпаковкаВысота);
                Упаковка.Вставить("Глубина",          Строка.УпаковкаГлубина);
                Упаковка.Вставить("Объем",            Строка.УпаковкаОбъем);
                Упаковка.Вставить("Ширина",           Строка.УпаковкаШирина);
                Упаковка.Вставить("Знаменатель",      Строка.УпаковкаЗнаменатель);
                Упаковка.Вставить("Числитель",        Строка.УпаковкаЧислитель);
                Упаковка.Вставить("Владелец",         Строка.Номенклатура);
                Упаковка.Вставить("Ссылка",           Строка.УпаковкаСсылка);
                
                // Поиск единицы измерения, если выгружается базовая единица как упаковка.
                Если Не ЗначениеЗаполнено(Строка.УпаковкаЕдиницаИзмерения) И Строка.УпаковкаВладелец = Справочники.НаборыУпаковок.БазовыеЕдиницыИзмерения Тогда
                                
                    // В интерактивном режиме нельзя указать в упаковке базовую единицу измерения с типом количество штук.
                    // Некорректно заполненные упаковки не выгружаем.
                    Если Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.КоличествоШтук Тогда
                        Возврат;
                    КонецЕсли;
                    
                    Если Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Длина Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "м";
                        КодБазовойЕдиницыИзмерения          = "006";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Площадь Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "м2";
                        КодБазовойЕдиницыИзмерения          = "055";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Объем Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "м3";
                        КодБазовойЕдиницыИзмерения          = "113";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Вес Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "кг";
                        КодБазовойЕдиницыИзмерения          = "166";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Энергия Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "Вт.ч";
                        КодБазовойЕдиницыИзмерения          = "243";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Мощность Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "Вт";
                        КодБазовойЕдиницыИзмерения          = "212";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "А.ч";
                        КодБазовойЕдиницыИзмерения          = "263";
                    ИначеЕсли Строка.УпаковкаТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.Время Тогда
                        НаименованиеБазовойЕдиницыИзмерения = "с";
                        КодБазовойЕдиницыИзмерения          = "354";
                    КонецЕсли;
                    
                    Запрос = Новый Запрос("ВЫБРАТЬ
                        |    УпаковкиЕдиницыИзмерения.Ссылка КАК Ссылка
                        |ИЗ
                        |    Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
                        |ГДЕ
                        |    УпаковкиЕдиницыИзмерения.Владелец = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.БазовыеЕдиницыИзмерения)
                        |    И УпаковкиЕдиницыИзмерения.Код = &Код
                        |
                        |ОБЪЕДИНИТЬ ВСЕ
                        |
                        |ВЫБРАТЬ
                        |    УпаковкиЕдиницыИзмерения.Ссылка
                        |ИЗ
                        |    Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиЕдиницыИзмерения
                        |ГДЕ
                        |    УпаковкиЕдиницыИзмерения.Владелец = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.БазовыеЕдиницыИзмерения)
                        |    И УпаковкиЕдиницыИзмерения.Наименование = &Наименование");
                    Запрос.УстановитьПараметр("Код", КодБазовойЕдиницыИзмерения);
                    Запрос.УстановитьПараметр("Наименование", НаименованиеБазовойЕдиницыИзмерения);
                    
                    Выборка = Запрос.Выполнить().Выбрать();
                    Если Выборка.Следующий() И ЗначениеЗаполнено(Выборка.Ссылка) Тогда
                        Упаковка.Вставить("ЕдиницаИзмерения", Выборка.Ссылка);
                    КонецЕсли;
                КонецЕсли;
                
                Строка.Упаковка = Новый Структура("Значение, ИмяПКО",
                    Упаковка, "Справочник_Упаковки_ИзСтруктуры");
                    
                ПравилоОбработки = КомпонентыОбмена.ПравилаОбработкиДанных.Найти("Справочник_УпаковкиЕдиницыИзмерения_Отправка", "Имя");
                Если Не ПравилоОбработки = Неопределено Тогда
                    ОбменДаннымиXDTOСервер.ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Упаковка, ПравилоОбработки);
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    Иначе
        Если ЗначениеЗаполнено(Строка.УпаковкаСсылка) И ЗначениеЗаполнено(Строка.Номенклатура) Тогда
            Упаковка = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
                    Строка.УпаковкаСсылка, "Владелец, Наименование, ЕдиницаИзмерения, Высота,
                        |Глубина, Объем, Ширина, Знаменатель, Числитель");
            
            Если Упаковка.Владелец = Строка.Номенклатура Тогда
                Строка.Упаковка = Строка.УпаковкаСсылка;
            Иначе
                Упаковка.Вставить("Владелец", Строка.Номенклатура);
                Строка.Упаковка = Новый Структура("Значение, ИмяПКО",
                    Упаковка, "Справочник_Упаковки_ИзСтруктуры");
                    
                ПравилоОбработки = КомпонентыОбмена.ПравилаОбработкиДанных.Найти("Справочник_УпаковкиЕдиницыИзмерения_Отправка", "Имя");
                Если Не ПравилоОбработки = Неопределено Тогда
                    ОбменДаннымиXDTOСервер.ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Упаковка, ПравилоОбработки);
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Показать
8. MikhailDr 13.08.20 09:34 Сейчас в теме
(7) Что говорит отладчик при остановке на этой строке?
9. VID1234 147 13.08.20 09:35 Сейчас в теме
(8) такое ощущение, что он не работает. У меня не стандартные порты 2541! Я ставлю точку останова, но ничего не происходит
10. MikhailDr 13.08.20 09:41 Сейчас в теме
Галочка стоит?
Прикрепленные файлы:
11. VID1234 147 13.08.20 09:45 Сейчас в теме
(10)Да, мне нужно пройти в программу в режиме отладчика и запустить обмен?
12. MikhailDr 13.08.20 09:46 Сейчас в теме
13. VID1234 147 13.08.20 10:05 Сейчас в теме
(12) не получается. Ничего не происходит, отладчик не срабатывает.
Прикрепленные файлы:
14. MikhailDr 13.08.20 10:07 Сейчас в теме
(13) Попробуйте без точки остановы с параметром "останавливаться по ошибке"

И проверьте отладку на любой внешней обработке, может и правда отладчик отвалился.
15. VID1234 147 13.08.20 10:08 Сейчас в теме
(14) на внешних он вообще у меня никогда не работал!
16. MikhailDr 13.08.20 10:11 Сейчас в теме
(15) Значит надо подключать отладку. Думаю тут вам лучше обратиться к системному администратору

https://programmist1s.ru/vklyuchenie-otladki-na-servere-1s/


Без отладки будет довольно сложно понять проблему, это как оперировать слепому хирургу на ошупь.
17. VID1234 147 13.08.20 10:15 Сейчас в теме
(16)а я могу сделать файловые базы БП и УТ, изменить префиксы, пароли и попробовать на файловой потренироваться?
18. MikhailDr 13.08.20 10:18 Сейчас в теме
(17) Попробуйте, только отладчик все равно нужен. Или вы предполагаете каждый раз делать выгрузку в файловый вариант?

В подключении отладки нет ничего сложного. Нормальный админ все за 5 минут сделает, потом надо только сервак перезагрузить.
19. VID1234 147 13.08.20 10:21 Сейчас в теме
20. VID1234 147 13.08.20 10:22 Сейчас в теме
(18) на файловом варианте (тест) исправить, а потом на серверной уже знать в чем была причина
21. MikhailDr 13.08.20 10:28 Сейчас в теме
(20) Пробуйте. Надо понять что передается в параметры, а потом проанализировать правила обмена и понять почему эти параметры не были переданы.

Отладчиком все равно займитесь. Замаетесь потом. Тут надо гуглить и смотреть внимательно, что не так с серваком.
24. VID1234 147 17.08.20 22:54 Сейчас в теме
(21) Вот что отладчик показал
Прикрепленные файлы:
22. VID1234 147 13.08.20 10:28 Сейчас в теме
(18) Блин оказывается слетел, сегодня тогда добавлю! А я думаю почему не работает. Хорошо проверил. Но это уже вечером, после работы, если что завтра напишу, что отладчик покажет. Спасибо!
25. MikhailDr 18.08.20 07:26 Сейчас в теме
(22) Это не совсем то что нужно. Надо понять, что в переменной "Строка" находится
23. muskul 14.08.20 04:27 Сейчас в теме
Да программу обновить надо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот