Не проводяться накладні повернення поставщикові. Вискакує помилка "{Документ.ВозвратТоваровПоставщику.МодульОбъекта(3476)}: Індекс знаходиться за межами масиву"
Полскажите - в какую сторону копать.
Если СтрокаТаблицыНаценок.Количество() = 0 Тогда
ПокупнаяЦена = Сумма;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС = 0 Тогда
СуммаНаценки = СтрокаТаблицыНаценок[0].ТН * Сумма / (СтрокаТаблицыНаценок[0].ПС);
ПокупнаяЦена = Сумма - СуммаНаценки;
Иначе
ПокупнаяЦена = 0;
КонецЕсли;
Если Сумма - ПокупнаяЦена <> 0 Тогда
ПокупнаяЦенаНУ = СуммаНУ;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС_НУ = 0 Тогда // НА ЭТУ СТРОЧКУ РУГАЕТСЯ
СуммаНаценкиНУ = СтрокаТаблицыНаценок[0].ТН_НУ * СуммаНУ / (СтрокаТаблицыНаценок[0].ПС_НУ);
ПокупнаяЦенаНУ = СуммаНУ - СуммаНаценкиНУ;
Иначе
ПокупнаяЦенаНУ = 0;
КонецЕсли;
Если Сумма - ПокупнаяЦена <> 0
ИЛИ (СтруктураШапкиДокумента.ЕстьНалогНаПрибыль И (СуммаНУ - ПокупнаяЦенаНУ <> 0))Тогда
// "уменьшим" списание партий
Для Каждого Партия Из Строка.СписанныеПартииБУ Цикл
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Номенклатура",Строка.Номенклатура);
СтруктураОтбора.Вставить("Склад", Строка.Склад);
СтруктураОтбора.Вставить("НоменклатурнаяПозиция", Партия.НоменклатурнаяПозиция);
СтруктураОтбора.Вставить("Партия", Партия.Партия);
СтруктураОтбора.Вставить("НалоговоеНазначение", Строка.НалоговоеНазначение);
СтрокаТаблицыНаценок = ТаблицаНаценок.НайтиСтроки(СтруктураОтбора);
Сумма = Партия.СуммаСписания;
СуммаНУ = Партия.СуммаСписанияНУ;
Если СтрокаТаблицыНаценок.Количество() = 0 Тогда
ПокупнаяЦена = Сумма;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС = 0 Тогда
СуммаНаценки = СтрокаТаблицыНаценок[0].ТН * Сумма / (СтрокаТаблицыНаценок[0].ПС);
ПокупнаяЦена = Сумма - СуммаНаценки;
Иначе
ПокупнаяЦена = 0;
КонецЕсли;
Если Сумма - ПокупнаяЦена <> 0 Тогда
ПокупнаяЦенаНУ = СуммаНУ;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС_НУ = 0 Тогда
СуммаНаценкиНУ = СтрокаТаблицыНаценок[0].ТН_НУ * СуммаНУ / (СтрокаТаблицыНаценок[0].ПС_НУ);
ПокупнаяЦенаНУ = СуммаНУ - СуммаНаценкиНУ;
Иначе
ПокупнаяЦенаНУ = 0;
КонецЕсли;
Если Сумма - ПокупнаяЦена <> 0
ИЛИ (СтруктураШапкиДокумента.ЕстьНалогНаПрибыль И (СуммаНУ - ПокупнаяЦенаНУ <> 0))Тогда
// "уменьшим" списание партий
Проводка = ПроводкиБУ.Добавить();
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.Содержание = "Торговая наценка";
Проводка.СчетДт = ПолучательСчетНаценки;
Проводка.СчетКт = Строка.СчетУчетаБУ;
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 1, Строка.КорСубконтоСписанияБУ1);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 2, Строка.КорСубконтоСписанияБУ2);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, 3, Строка.КорСубконтоСписанияБУ3);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Номенклатура", Строка.Номенклатура);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "НоменклатурныеПозиции", Партия.НоменклатурнаяПозиция);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Склады", Строка.Склад);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Партии", Партия.Партия);
Проводка.Сумма = ПокупнаяЦена - Сумма;
Если Проводка.СчетДт.Валютный Тогда
Проводка.ВалютаДт = СтруктураШапкиДокумента.ВалютаВзаиморасчетов;
Проводка.ВалютнаяСуммаДт = ?(Строка.СуммаБезНДСВал = 0, Проводка.Сумма, Проводка.Сумма * Строка.СуммаБезНДСВал / Строка.СуммаБезНДСРегл);
КонецЕсли;
Проводка.НалоговоеНазначениеКт = Строка.НалоговоеНазначение;
Если СтруктураШапкиДокумента.ЕстьНалогНаПрибыль
И Строка.НалоговоеНазначение <> Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_НеоблагаемаяНеХозДеятельность Тогда
Проводка.СуммаНУКт = ПокупнаяЦенаНУ - СуммаНУ;
КонецЕсли;
// отразим списание наценки
Проводка = ПроводкиБУ.Добавить();
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.Содержание = "Торговая наценка";
Проводка.СчетДт = СчетНаценки;
Проводка.СчетКт = Строка.СчетУчетаБУ;
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Номенклатура", Строка.Номенклатура);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "НоменклатурныеПозиции", Партия.НоменклатурнаяПозиция);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Склады", Строка.Склад);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "Партии", Партия.Партия);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Номенклатура", Строка.Номенклатура);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "НоменклатурныеПозиции", Партия.НоменклатурнаяПозиция);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Склады", Строка.Склад);
ОбщегоНазначения.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "Партии", Партия.Партия);
Проводка.Сумма = -(ПокупнаяЦена - Сумма);
Проводка.НалоговоеНазначениеДт = Строка.НалоговоеНазначение;
Проводка.НалоговоеНазначениеКт = Строка.НалоговоеНазначение;
Если СтруктураШапкиДокумента.ЕстьНалогНаПрибыль
И Строка.НалоговоеНазначение <> Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_НеоблагаемаяНеХозДеятельность Тогда
Проводка.СуммаНУДт = ПокупнаяЦенаНУ - СуммаНУ;
Проводка.СуммаНУКт = ПокупнаяЦенаНУ - СуммаНУ;
КонецЕсли;
Партия.СуммаСписания = ПокупнаяЦена;
Партия.СуммаСписанияНУ = ПокупнаяЦенаНУ;
КонецЕсли;
СтрокаТаблицыНаценок[0].ПС_НУ
СтрокаТаблицыНаценок[0].ТН_НУ
Если Сумма - ПокупнаяЦена <> 0 Тогда
ПокупнаяЦенаНУ = СуммаНУ;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС_НУ = 0 Тогда // НА ЭТУ СТРОЧКУ РУГАЕТСЯ
СуммаНаценкиНУ = СтрокаТаблицыНаценок[0].ТН_НУ * СуммаНУ / (СтрокаТаблицыНаценок[0].ПС_НУ);
ПокупнаяЦенаНУ = СуммаНУ - СуммаНаценкиНУ;
Иначе
ПокупнаяЦенаНУ = 0;
КонецЕсли;
Попытка
Если Сумма - ПокупнаяЦена <> 0 Тогда
ПокупнаяЦенаНУ = СуммаНУ;
ИначеЕсли НЕ СтрокаТаблицыНаценок[0].ПС_НУ = 0 Тогда // НА ЭТУ СТРОЧКУ РУГАЕТСЯ
СуммаНаценкиНУ = СтрокаТаблицыНаценок[0].ТН_НУ * СуммаНУ / (СтрокаТаблицыНаценок[0].ПС_НУ);
ПокупнаяЦенаНУ = СуммаНУ - СуммаНаценкиНУ;
Иначе
ПокупнаяЦенаНУ = 0;
КонецЕсли;
Исключение
СуммаНаценкиНУ = 0;
ПокупнаяЦенаНУ = 0;
КонецПопытки;