|
1C вешается при обмене | ☑ | ||
|---|---|---|---|---|
|
0
Niger
16.03.09
✎
10:39
|
Добавил алгоритм изменения табличной части при выгрузке из торговли в бухгалтерию.
Отдельно (без обмена) алгоритм отрабатывает, причем довольно быстро, а в правилах на строке 20 вешает 1С. Где копать? Код: ТабТовары = Источник.Товары.Выгрузить(); Для каждого СтрокаТовары Из ТабТовары Цикл СтрокаТовары.Количество = СтрокаТовары.Количество * СтрокаТовары.ЕдиницаИзмерения.Коэффициент; СтрокаТовары.Цена = СтрокаТовары.Цена / СтрокаТовары.Коэффициент; КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПартииТоваровНаСкладах.Номенклатура, | ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры, | ПартииТоваровНаСкладах.СерияНоменклатуры, | ПартииТоваровНаСкладах.Количество |ИЗ | РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах |ГДЕ | ПартииТоваровНаСкладах.ДокументОприходования = &ДокументОприходования | И ПартииТоваровНаСкладах.ВидДвижения = &ВидДвижения | И ПартииТоваровНаСкладах.КодОперации = &КодОперации"; Запрос.УстановитьПараметр("ДокументОприходования", Источник.Ссылка); Запрос.УстановитьПараметр("ВидДвижения", ВидДвиженияНакопления.Расход); Запрос.УстановитьПараметр("КодОперации", Перечисления.КодыОперацийПартииТоваров.Реализация); РезультатЗапроса = Запрос.Выполнить(); ТабПартии = РезультатЗапроса.Выгрузить(); КоллекцияОбъектов = ТабТовары.Скопировать(); КоллекцияОбъектов.Очистить(); КоллекцияОбъектов.Колонки.Добавить("ОтражениеВУСН"); Сообщить("Ссылка: "+Источник.Ссылка); Для каждого СтрокаТЧ ИЗ ТабТовары Цикл СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Номенклатура", СтрокаТЧ.Номенклатура); СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", СтрокаТЧ.ХарактеристикаНоменклатуры); Если СтрокаТЧ.Номенклатура.ВестиПартионныйУчетПоСериям Тогда СтруктураПоиска.Вставить("СерияНоменклатуры", СтрокаТЧ.СерияНоменклатуры); КонецЕсли; НайденныеСтроки = ТабПартии.НайтиСтроки(СтруктураПоиска); ОстКоличество = СтрокаТЧ.Количество; Для каждого СтрокаПартии ИЗ НайденныеСтроки Цикл Если ОстКоличество > 0 И СтрокаПартии.Количество > 0 Тогда НоваяСтрока = КоллекцияОбъектов.Добавить(); Для каждого Колонка ИЗ ТабТовары.Колонки Цикл Если Колонка.Имя = "НомерСтроки" Тогда Продолжить; КонецЕсли; НоваяСтрока[Колонка.Имя] = СтрокаТЧ[Колонка.Имя]; КонецЦикла; НоваяСтрока.Количество = Мин(СтрокаПартии.Количество, ОстКоличество); НоваяСтрока.Сумма = НоваяСтрока.Количество * СтрокаТЧ.Цена; НоваяСтрока.ОтражениеВУСН = "Принимаются"; СтрокаПартии.Количество = СтрокаПартии.Количество - НоваяСтрока.Количество; ОстКоличество = ОстКоличество - НоваяСтрока.Количество; Сообщить("Строка: "+НоваяСтрока.Номенклатура+" - "+НоваяСтрока.ОтражениеВУСН); КонецЕсли; КонецЦикла; Если ОстКоличество > 0 Тогда НоваяСтрока = КоллекцияОбъектов.Добавить(); Для каждого Колонка ИЗ ТабТовары.Колонки Цикл НоваяСтрока[Колонка.Имя] = СтрокаТЧ[Колонка.Имя]; КонецЦикла; НоваяСтрока.Количество = ОстКоличество; НоваяСтрока.Сумма = НоваяСтрока.Количество * СтрокаТЧ.Цена; НоваяСтрока.ОтражениеВУСН = "НеПринимаются"; Сообщить("Строка: "+НоваяСтрока.Номенклатура+" - "+НоваяСтрока.ОтражениеВУСН); КонецЕсли; КонецЦикла; |
|||
|
1
ТелепатБот
гуру
16.03.09
✎
10:39
|
||||
|
2
Defender aka LINN
16.03.09
✎
10:46
|
Которая из них 20я?
|
|||
|
3
Нуф-Нуф
16.03.09
✎
10:47
|
(2) 7я
|
|||
|
4
Niger
16.03.09
✎
10:47
|
Не в коде, в данных
|
|||
|
5
Defender aka LINN
16.03.09
✎
10:48
|
(4) А. Тогда вторник.
|
|||
|
6
Niger
16.03.09
✎
10:50
|
(5) отлаживаю через Сообщить - там определенная строка на разных компах и разных платформах 8.1.12 и 8.1.13 результаты одинаковы
|
|||
|
7
Defender aka LINN
16.03.09
✎
10:52
|
(6) Отладчиком не пользуешься из принципа?
|
|||
|
8
Niger
16.03.09
✎
10:54
|
(7) Нет опыта в отладке правил. Может чего подскажешь?
|
|||
|
9
Defender aka LINN
16.03.09
✎
10:58
|
(8) Нет опыта в чем? Какой нужен опыт, чтобы увидеть БОЛЬШУЮ кнопку "Отладка обработчиков"? О_о
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |