|
УТ 10.3: Помогите с механизмом распределения доп.расходов. | ☑ | ||
---|---|---|---|---|
0
_stay true_
24.07.13
✎
14:52
|
Здравствуйте. Мне нужно сделать механизм распределения доп.расходов в документе "ПоступлениеДопРасходов". Идея такая: Добавить в документ «Поступление доп. расходов» процедуру заполняющую колонку «Доп. Расходы (сумма)» в табличной части документа пропорционально доле суммы товара. Процедура вызывается по кнопке «Распределить». расположенной над табличной частью. Т.е Тупо нужно, чтобы "сумма расхода" сама разбрасывалась по строкам ТЧ Товары документа. Начал вроде бодро, но сейчас зашел в тупик. Мой код:
Функция Распределить() ЭКСПОРТ ТЗ = Новый ТаблицаЗначений; ТЗ = ЭтотОбъект.Товары.Выгрузить(); СуммаКРаспределению = ЭтотОбъект.Сумма; //получим максимальный элемент ТЗ.Сортировать("СуммаТовара Убыв"); МаксЭл = ТЗ[0]; //Получим доли к распределнию ОбщаяСуммаТовара = ТЗ.Итог("СуммаТовара"); Для Каждого СтрокаТаблицыЗначений ИЗ ТЗ Цикл ДоляКРаспределнию = (СтрокаТаблицыЗначений.СуммаТовара / ОбщаяСуммаТовара); СуммаРаспределенная = СуммаКРаспределению * ДоляКРаспределнию; СтрокаТаблицыЗначений.Сумма = СуммаРаспределенная; СуммаРаспределеннаяИтог = ТЗ.Итог("Сумма"); //получим разницу, если сумма делится с остатком, и завяжем её на максимальный элемент ТЗ Если СуммаКРаспределению > СуммаРаспределеннаяИтог Тогда Разница = СуммаКРаспределению - СуммаРаспределенная; ТЗ[0].Сумма = ТЗ[0].Сумма + Разница; КонецЕсли; КонецЦикла; КонецФункции // Распредлить() Заранее огромное всем спасибо за помощь. |
|||
1
cw014
24.07.13
✎
14:54
|
Нифига не понял. А в чем затык то?
|
|||
2
_stay true_
24.07.13
✎
14:58
|
Ставлю точку останова: ТЗ = ЭтотОбъект.Товары.Выгрузить(); отладчик говорит Ошибка в выражении, то же самое и в ТЗ.Сортировать("СуммаТовара Убыв");МаксЭл = ТЗ[0];
Сумма не разбрасывается. При нажатии визуально вообще ничего не происходит. Вот и туплю, пытаясь доработать эту штуку... |
|||
3
_stay true_
24.07.13
✎
14:58
|
И при всём том "СтрокаТаблицыЗначений" корректно высчитывается...
|
|||
4
cw014
24.07.13
✎
15:00
|
Ставлю точку останова: ТЗ = ЭтотОбъект.Товары.Выгрузить(); отладчик говорит Ошибка в выражении,
Что простите отладчик говорит? И где? |
|||
5
_stay true_
24.07.13
✎
15:02
|
(4) ЭтотОбъект.Товары.Выгрузить();
ТЗ.Сортировать("СуммаТовара Убыв"); МаксЭл = ТЗ[0]; ТЗ[0].Сумма = ТЗ[0].Сумма + Разница; Везде "ошибка в выражении". |
|||
6
ДенисЧ
24.07.13
✎
15:03
|
а в каком контексте ты всё это делаешь?
Сам ЭтотОбъект - про него отладчик что говорит? |
|||
7
cw014
24.07.13
✎
15:03
|
(5) ошибка в выражении у тебя в табло появляется? Так там и будет ошибка в выражении, он показывает только то что можно вычислить
|
|||
8
cw014
24.07.13
✎
15:04
|
(6) ошибка в выражении )))
|
|||
9
ДенисЧ
24.07.13
✎
15:05
|
(8) теперь отвечай на первый вопрос...
|
|||
10
cw014
24.07.13
✎
15:05
|
(9) А ТС не я )))
|
|||
11
cw014
24.07.13
✎
15:06
|
(9) Это я так троллю по чуть-чуть
|
|||
12
_stay true_
24.07.13
✎
15:06
|
(6) В контексте формы.
ЭтотОбъект Поступление доп. расходов ССН00000001 от 06.05.2007 16:00:00 ДокументОбъект.ПоступлениеДопРасходов ВалютаДокумента USD СправочникСсылка.Валюты ВерсияДанных "AAAAEQAAAAA=" Строка ВидОперации услуга сторонней организации ПеречислениеСсылка.ВидыОперацийПоступлениеДопРасходов Дата 06.05.2007 16:00:00 Дата ДатаВходящегоДокумента 01.01.0001 0:00:00 Дата Движения КоллекцияДвижений КоллекцияДвижений ДоговорКонтрагента Т1 СправочникСсылка.ДоговорыКонтрагентов ДокументыРасчетовСКонтрагентом ДокументТабличнаяЧасть.ПоступлениеДопРасходов.ДокументыРасчетовСКонтрагентом ДокументТабличнаяЧасть.ПоступлениеДопРасходов.ДокументыРасчетовСКонтрагентом ДополнительныеСвойства Структура Структура Комментарий "" Строка Контрагент Вега-транс СправочникСсылка.Контрагенты КратностьВзаиморасчетов 1 Число КурсВзаиморасчетов 25,7691 Число НДСВключенВСтоимость Ложь Булево Номер "ССН00000001" Строка НомерВходящегоДокумента "" Строка ОбменДанными ПараметрыОбменаДанными ПараметрыОбменаДанными Организация Cтройснаб СправочникСсылка.Организации Ответственный Федоров Борис Михайлович СправочникСсылка.Пользователи ОтражатьВБухгалтерскомУчете Истина Булево ОтражатьВНалоговомУчете Истина Булево ОтражатьВУправленческомУчете Истина Булево Подразделение Отдел оптовой продажи СправочникСсылка.Подразделения ПометкаУдаления Ложь Булево ПринадлежностьПоследовательностям ФиксированнаяКоллекция ФиксированнаяКоллекция Проведен Истина Булево Сделка Неопределено Содержание "" Строка СпособРаспределения По сумме ПеречислениеСсылка.СпособыРаспределенияДопРасходов Ссылка Поступление доп. расходов ССН00000001 от 06.05.2007 16:00:00 ДокументСсылка.ПоступлениеДопРасходов СтавкаНДС 18% ПеречислениеСсылка.СтавкиНДС Сумма 60 Число СуммаВключаетНДС Истина Булево СуммаДокумента 660 Число СуммаНДС 9,15 Число Товары ДокументТабличнаяЧасть.ПоступлениеДопРасходов.Товары ДокументТабличнаяЧасть.ПоступлениеДопРасходов.Товары УчитыватьНДС Истина Булево ЭтотОбъект Поступление доп. расходов ССН00000001 от 06.05.2007 16:00:00 ДокументОбъект.ПоступлениеДопРасходов мВалютаРегламентированногоУчета руб. СправочникСсылка.Валюты мСтруктураПараметровВзаиморасчетов Структура Структура мСтруктураПараметровДляПолученияДоговора Структура Структура |
|||
13
cw014
24.07.13
✎
15:07
|
(12) Достаточно было верхней строки
ЭтотОбъект.Товары.Выгрузить() что в табло показывает? Сколько строк у этой таблицы и правильно ли она заполнена? |
|||
14
ДенисЧ
24.07.13
✎
15:08
|
странно...
|
|||
15
cw014
24.07.13
✎
15:10
|
Да и еще вопрос:
СуммаКРаспределению = ЭтотОбъект.Сумма; ОбщаяСуммаТовара = ТЗ.Итог("СуммаТовара"); Большая в них разница? |
|||
16
_stay true_
24.07.13
✎
15:11
|
(15) В основном да.Обычно сумма доп.расхода 2000р, а товаров временами на 100 000 и выше.
|
|||
17
cw014
24.07.13
✎
15:11
|
Так то даже не ясно какую сумму ты разбрасываешь... Это дополнительный реквизит, или ты где то ее указываешь? Или все таки эта итоговая сумма по строкам ТЧ Товары?
|
|||
18
cw014
24.07.13
✎
15:12
|
СТОП
|
|||
19
cw014
24.07.13
✎
15:12
|
А на кой болт ты ТЗ правишь? Какая ТЧ должна быть заполнена?
|
|||
20
_stay true_
24.07.13
✎
15:13
|
(17) ОбщаяСуммаТовара = ТЗ.Итог("СуммаТовара") = итоговая сумма товара по ТЧ Товары
СуммаКРаспределению = ЭтотОбъект.Сумма - реквизит документа, значение либо вводится вручную, либо наследуется из документа-основания |
|||
21
_stay true_
24.07.13
✎
15:14
|
(19) Должна быть заполнена ТЧ Товары.
|
|||
22
cw014
24.07.13
✎
15:14
|
Ну так ты и заполняй ТЧ товары, а не переменную ТЗ
|
|||
23
_stay true_
24.07.13
✎
15:17
|
(22) Поподробнее можно, пожалуйста? Я в 1С новичок ещё тот, блин)))
|
|||
24
cw014
24.07.13
✎
15:18
|
Оооо, ну тогда книжки почитай сначала, определись, что такое прикладной объект и унивесальная коллекция значений, потом уже пиши что нибудь
|
|||
25
cw014
24.07.13
✎
15:20
|
Хотя бы в конце фееричного своего бреда добавь:
Товары.Загрузить(ТЧ); |
|||
26
_stay true_
24.07.13
✎
15:23
|
(25) Я бы хотел знать мнение бывалого: как бы ты сам выполнил такую задачу? Мне бы хоть какую-то мыслю)))
|
|||
27
_stay true_
24.07.13
✎
15:27
|
(25) Спасибо тебе за всё. Я тебе очень благодарен за помощь
|
|||
28
cw014
25.07.13
✎
07:34
|
(27) Спасибо не булькает ;)
|
|||
29
_stay true_
25.07.13
✎
12:33
|
Наверное, географически мы далеко, а то мне тут литр блэка подогнали, а я не пью)))
|
|||
30
cw014
25.07.13
✎
12:33
|
(29) Отправляй почтой
|
|||
31
_stay true_
25.07.13
✎
12:34
|
(30) Не доедет. Почтовые голуби всё выжрут по дороге и чая туда щальют:)
|
|||
32
_stay true_
25.07.13
✎
12:35
|
Если будешь когда-нибудь в городе герое колыбели русского флота Воронеже - обращайся:)
|
|||
33
cw014
25.07.13
✎
12:36
|
(31) Вот млин
(32) Это наврят ли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |