При переходе с 8.1 на 8.2 перестала работать внешняя обработка

1. kolbaska228 16.02.19 08:54 Сейчас в теме
При переходе с 8.1 на 8.2 перестала работать внешняя обработка. А именно , есть подключаемая внешняя обработка для автоматического проставления складов при реализации.
Есть 6 складов и один отдельный склад, один товар лежит и на 3ем и на 7ом, но нужно списывать только с 3го. На 8.1 все работало как надо , но при переходе на 8.2 товар который лежит на 7ом и на 3ем складе стал проставляться с 7го .
Еще заметил такую вот штуку, скрины ниже. 1й скрин это 8.1 а второй 8.2
Помогите решить этот вопрос
Вот код обработки

Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
	СкладРезерва = Справочники.Склады.НайтиПоКоду("00024");
	
		
	Если ИмяТабличнойЧасти = "Товары" Тогда
		Для каждого СтрокаТовары Из Объект.Товары Цикл
			Отбор = Новый Структура("Номенклатура",СтрокаТовары.Номенклатура);
			ТаблицаСкладов = РегистрыНакопления.ТоварыНаСкладах.Остатки(,Отбор,"Склад","Количество");
			
			Если ТаблицаСкладов.Количество() <> 0 Тогда
				Если ТаблицаСкладов[0].Склад <> СкладРезерва 
					 Тогда

					СтрокаТовары.Склад = ТаблицаСкладов[0].Склад;
				КонецЕсли;			
			КонецЕсли;
			
		КонецЦикла;
		
	КонецЕсли;
КонецПроцедуры
Показать


Еще заметил такую вот штуку, скрины ниже. 1й скрин это 8.1 а второй 8.2
Прикрепленные файлы:
+
По теме из базы знаний
Найденные решения
15. kolbaska228 16.02.19 14:30 Сейчас в теме
(14) Добавил в код сортировку . теперь выскакивает ошибка , скрин ниже

                            Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
    СкладРезерва = Справочники.Склады.НайтиПоКоду("00025");
        
    Если ИмяТабличнойЧасти = "Товары" Тогда
        Для каждого СтрокаТовары Из Объект.Товары Цикл
            Отбор = Новый Структура("Номенклатура",СтрокаТовары.Номенклатура);
            ТаблицаСкладов = РегистрыНакопления.ТоварыНаСкладах.Остатки(,Отбор,"Склад","КоличествоОстаток") ;
		    ТаблицаСкладов.Сортировать("Склад Возр");;
            
            Если ТаблицаСкладов.Количество() <> 0 Тогда
                ТаблицаСкладов.Сортировать("Количество Убыв");
                ОстатокСкл = ТаблицаСкладов[0].Количество;
                Если ОстатокСкл < СтрокаТовары.Количество Тогда
                    Сообщить("На складе" +ТаблицаСкладов[0].Склад.наименование+"не достаточно товаров")
                    Иначе
                    СтрокаТовары.Склад = ТаблицаСкладов[0].Склад;
                КонецЕсли;
            КонецЕсли;
            
        КонецЦикла;
                                
    КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Xershi 1484 16.02.19 10:21 Сейчас в теме
(1) ну как бы конвертацию сделать надо?
+
6. kolbaska228 16.02.19 10:32 Сейчас в теме
(5) Конвертацию сделал. Суть в том что она ставит не тот склад который нужно
+
7. Xershi 1484 16.02.19 10:38 Сейчас в теме
(6) значит переписывайте код обработки.
Чтобы он ставил тот.
+
8. kolbaska228 16.02.19 10:42 Сейчас в теме
(7) вопрос как ? Все тоже самое , только почему то он отбирает склады не по порядку
+
9. dim_1c 16.02.19 10:44 Сейчас в теме
(8) А где указан порядок? Почему 3 склад должен быть раньше 7?
+
11. kolbaska228 16.02.19 10:57 Сейчас в теме
(9) В коде не указан, но почему то на 8.1 он сам выстраивал в нужном порядке
+
12. dim_1c 16.02.19 11:00 Сейчас в теме
(11) Без сортировки нельзя гарантировать порядок результата. Xershi все правильно сказал: используйте запрос с сортировкой.
+
10. Xershi 1484 16.02.19 10:56 Сейчас в теме
(8)
ТаблицаСкладов = РегистрыНакопления.ТоварыНаСкладах.Остатки(,Отбор,"Склад","Количество");

Переписать на запрос и в нем сортировать.
Или после сортировать таблицу, как вам нужно.
+
13. kolbaska228 16.02.19 11:20 Сейчас в теме
(10)
еписать на запрос и в нем сортирова

как правильно ? А то чет не получаеться
	ТаблицаСкладов = РегистрыНакопления.ТоварыНаСкладах.Остатки(,Отбор,"Склад","Количество");
			УПОРЯДОЧИТЬ ПО Склад ИЕРАРХИЯ 
			
+
14. Xershi 1484 16.02.19 12:12 Сейчас в теме
(13) посмотрите курс Кузнецова на Ютубе бесплатно.
+
15. kolbaska228 16.02.19 14:30 Сейчас в теме
(14) Добавил в код сортировку . теперь выскакивает ошибка , скрин ниже

                            Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
    СкладРезерва = Справочники.Склады.НайтиПоКоду("00025");
        
    Если ИмяТабличнойЧасти = "Товары" Тогда
        Для каждого СтрокаТовары Из Объект.Товары Цикл
            Отбор = Новый Структура("Номенклатура",СтрокаТовары.Номенклатура);
            ТаблицаСкладов = РегистрыНакопления.ТоварыНаСкладах.Остатки(,Отбор,"Склад","КоличествоОстаток") ;
		    ТаблицаСкладов.Сортировать("Склад Возр");;
            
            Если ТаблицаСкладов.Количество() <> 0 Тогда
                ТаблицаСкладов.Сортировать("Количество Убыв");
                ОстатокСкл = ТаблицаСкладов[0].Количество;
                Если ОстатокСкл < СтрокаТовары.Количество Тогда
                    Сообщить("На складе" +ТаблицаСкладов[0].Склад.наименование+"не достаточно товаров")
                    Иначе
                    СтрокаТовары.Склад = ТаблицаСкладов[0].Склад;
                КонецЕсли;
            КонецЕсли;
            
        КонецЦикла;
                                
    КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
+
16. kolbaska228 16.02.19 14:35 Сейчас в теме
(15) А не , все , заработало !
+
2. Dmitrij-2 45 16.02.19 09:35 Сейчас в теме
Что за конфигурация, что вы до сих пор на 8.1 сидели?
+
3. kolbaska228 16.02.19 10:17 Сейчас в теме
4. kolbaska228 16.02.19 10:17 Сейчас в теме
(2) А если точнее "Управление торговлей", редакция 10.3 (10.3.1.17)
+
Внимание! Тема сдана в архив

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