![]() |
|
Вывод суммы документа в разных колонках ТЧ, в зависимости от перечисления | ☑ | ||
---|---|---|---|---|
0
demous
04.05.12
✎
09:25
|
УПП 8.2
Есть документ с ТЧ, в которую выводятся данные по ЗаявкамНаРАсходованиеСредств суть в том ,что в заявку добавили поле выбора ( перечисление с двумя значениями) и требуется что бы в ТЧ документа того, выводилась сумма заявки в две разные колонки, в зависимости от того, какое стоит значение "перечисления" то есть если выбрано значение АВ - то сумма документа вывелась в первую колонку если выбрано значение КЗ - то сумма вывелась во вторую колонку и внизу подводился итог по колонкам P.S. Заранее всем Спасибо! |
|||
1
demous
04.05.12
✎
09:30
|
При этом есть вот такая процедура
Процедура РасчетныеСчетаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) ОформлениеСтроки.Ячейки.Остаток2.УстановитьТекст(Формат(ДанныеСтроки.Остаток - ДанныеСтроки.КПеречислению, "ЧДЦ=2")); КонецПроцедуры где ДанныеСтроки.Остаток тоже должны будут из этих двух колонок разных вычислять ДанныеСтроки.КПеречислению |
|||
2
demous
04.05.12
✎
09:40
|
апну
|
|||
3
demous
04.05.12
✎
09:42
|
Есть Кнопка "Заполнить" по которой заполняется ТЧ документа
Запрос.Текст="ВЫБРАТЬ | ДенежныеСредстваОстатки.БанковскийСчетКасса КАК Счет, | СУММА(ДенежныеСредстваОстатки.СуммаОстаток) КАК Остаток |ИЗ | РегистрНакопления.ДенежныеСредства.Остатки( | &Дат, | Организация = &Организация | И ВидДенежныхСредств = &ВидСредств | И БанковскийСчетКасса.ВалютаДенежныхСредств = &Валюта) КАК ДенежныеСредстваОстатки | |СГРУППИРОВАТЬ ПО | ДенежныеСредстваОстатки.БанковскийСчетКасса"; Запрос.УстановитьПараметр("Дат",НачалоДня(Дата)); Запрос.УстановитьПараметр("Организация",Организация); Запрос.УстановитьПараметр("ВидСредств",ВидСредств); Запрос.УстановитьПараметр("Валюта",ВалютаДокумента); ТЗ=Запрос.Выполнить().Выгрузить(); РасчетныеСчета.Загрузить(ТЗ); Для Каждого Стр Из РасчетныеСчета Цикл Если Стр.Счет=Организация.ОсновнойБанковскийСчет Тогда Стр.СчетПоУмолчанию=Истина; КонецЕсли; КонецЦикла; СписокСостояний = Новый СписокЗначений; СписокСостояний.Добавить(Перечисления.СостоянияОбъектов.Утвержден); Построитель.Параметры.Вставить("Дат",КонецМесяца(Дата)); Построитель.Параметры.Вставить("Организация",Организация); Построитель.Параметры.Вставить("ФормаОплаты",ВидСредств); Построитель.Параметры.Вставить("Состояния",СписокСостояний); Построитель.Параметры.Вставить("ВалютаДокумента",ВалютаДокумента); Построитель.Выполнить(); Выб=Построитель.Результат.Выбрать(); Пока Выб.Следующий() Цикл Стр=Платежи.Добавить(); Стр.Заявка=Выб.Заявка; Стр.Контрагент=Выб.Контрагент; Стр.ДатаРасхода=Выб.Заявка.ДатаРасхода; Стр.Ответственный=Выб.Заявка.Ответственный; Стр.Комментарий=Выб.Заявка.Д_ВидПлатежа; Стр.НомерСчета=""+Выб.Заявка.НомерСчета+" от "+Формат(Выб.Заявка.ДатаСчета,"ДЛФ=Д"); Стр.ОснованиеПлатежа=Выб.Заявка.Описание; Стр.СуммаЗаявки=Выб.Заявка.СуммаДокумента; Стр.Счет = Выб.Заявка.БанковскийСчетКасса; Стр.Остаток=Выб.СуммаВзаиморасчетов; Стр.СтатьяДвиженияДенежныхСтредств = Выб.СтатьяДвиженияДенежныхСредств; Стр.ВалютаВзаиморасчетов = Выб.ВалютаВзаиморасчетов; КонецЦикла; Нас интересует "Остаток" он должен выводиться в разные колонки |
|||
4
demous
04.05.12
✎
10:17
|
апну .
|
|||
5
hhhh
04.05.12
✎
10:21
|
сделайте две ТЧ, чего вы паритесь?
|
|||
6
demous
04.05.12
✎
10:24
|
Нужно в одной - как мне сказали - Слово начальника считай законом... хотят именно рядом две колонки
|
|||
7
aleks-id
04.05.12
✎
10:45
|
выбор когда АВ тогда суммадокумента иначе 0 конец как перваяколонка,
выбор когда КЗ тогда суммадокумента иначе 0 конец как втораяаяколонка, |
|||
8
demous
04.05.12
✎
12:16
|
(7) на кнопку или в процедуру ПриОткрытии это?
|
|||
9
demous
04.05.12
✎
13:44
|
апну
|
|||
10
demous
04.05.12
✎
14:16
|
uppppp
|
|||
11
demous
04.05.12
✎
15:05
|
НЕт?
|
|||
12
demous
04.05.12
✎
15:27
|
а если в ПриВыводеСтроки вот такое?
Если ДанныеСтроки.КПеречислению = Перечисляния.Д_ВидПлатежа.АВ Тогда Стр.ПерваяКолонка = Выб.СуммаВзаиморасчетов Иначе Стр.ВтораяКолонка = Выб.СуммаВзаиморасчетов КонецЕсли; но как сделать вот тут? ПослеОплаты=ДанныеСтроки.Остаток-ДанныеСтроки.КПеречислению; это в этой же процедуре |
|||
13
Лодырь
04.05.12
✎
15:46
|
Самый универсальный способ - выложить на форму свою таблицу и как хочешь ее заполнять.
|
|||
14
demous
04.05.12
✎
15:58
|
а изменить надо именно в том варианте как есть)
|
|||
15
demous
04.05.12
✎
16:36
|
Если Выб.Заявка.Д_ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ Тогда
Стр.ПерваяКолонка = Выб.СуммаВзаиморасчетов Иначе Стр.ВтораяКолонка = Выб.СуммаВзаиморасчетов КонецЕсли; вот так выглядит предыдущий момент вернее |
|||
16
demous
04.05.12
✎
17:06
|
вап
|
|||
17
hhhh
04.05.12
✎
17:23
|
(16) вот такая штука Выб.Заявка.Д_ВидПлатежа - это офигенные тормоза, называется: запрос в цикле. За такое сразу за йайцы подвешивают.
Лучше получите все эти поля в запросе, а в коде пишите Выб.ВидПлатежа, Выб.Ответственный, Выб.СуммаДокумента и так далее. |
|||
18
demous
04.05.12
✎
17:27
|
(17)Исправил, спасибо за совет!
как мне с вот этим местом быть ? ПослеОплаты=ДанныеСтроки.Остаток-ДанныеСтроки.КПеречислению; ПерваяКолонка и ВтораяКолонка, это "Остаток" был |
|||
19
demous
04.05.12
✎
17:28
|
Процедура РасчетныеСчетаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
ОформлениеСтроки.Ячейки.Остаток2.УстановитьТекст(Формат(ДанныеСтроки.Остаток - ДанныеСтроки.КПеречислению, "ЧДЦ=2")); КонецПроцедуры вот тоже ( |
|||
20
demous
04.05.12
✎
17:28
|
КолСтрок = Платежи.Количество();
Для Ит = 1 По КолСтрок Цикл СтрЛаст = Платежи.Получить(КолСтрок-Ит); Если СтрЛаст.КПеречислению=0 Тогда Платежи.Удалить(СтрЛаст); ИначеЕсли Не ЗначениеЗаполнено(СтрЛаст.ПлатежноеПоручение) Тогда СтрЛаст.Остаток = 0; КонецЕсли; КонецЦикла; |
|||
21
demous
04.05.12
✎
17:29
|
Запрос.Текст="ВЫБРАТЬ
| ДенежныеСредстваОстатки.БанковскийСчетКасса КАК Счет, | СУММА(ДенежныеСредстваОстатки.СуммаОстаток) КАК Остаток |ИЗ | РегистрНакопления.ДенежныеСредства.Остатки( | &Дат, | Организация = &Организация | И ВидДенежныхСредств = &ВидСредств | И БанковскийСчетКасса.ВалютаДенежныхСредств = &Валюта) КАК ДенежныеСредстваОстатки | |СГРУППИРОВАТЬ ПО | ДенежныеСредстваОстатки.БанковскийСчетКасса" |
|||
22
demous
04.05.12
✎
17:29
|
везде остаток надо на первая и вторая колонка разелить... как это сделать?
|
|||
23
hhhh
04.05.12
✎
17:31
|
(22) вроде в (7) ответ был
|
|||
24
demous
04.05.12
✎
17:32
|
(19) ну вот тут как это реализовать?
ОформлениеСтроки.Ячейки.Остаток2.УстановитьТекст(Формат(ДанныеСтроки.Остаток - ДанныеСтроки.КПеречислению, "ЧДЦ=2")); выбор когда АВ тогда суммадокумента иначе 0 конец как перваяколонка, выбор когда КЗ тогда суммадокумента иначе 0 конец как втораяаяколонка, |
|||
25
demous
04.05.12
✎
17:51
|
&&&&
|
|||
26
demous
04.05.12
✎
17:57
|
подскажите плиз
|
|||
27
demous
05.05.12
✎
08:58
|
Может с утра кто подкажет как быть с (18) (19) (20) (21) ?
|
|||
28
demous
05.05.12
✎
09:28
|
люди помогите)
не долго я уже с 1с буду связан) |
|||
29
demous
05.05.12
✎
09:53
|
апну
|
|||
30
demous
05.05.12
✎
10:08
|
uppp
|
|||
31
demous
05.05.12
✎
10:23
|
ну подскажите человеку не понимающему как это сделать?)
|
|||
32
aleks-id
05.05.12
✎
10:32
|
в запросе надо делать
|
|||
33
demous
05.05.12
✎
10:38
|
(32) вот примеры которые я последние привел... они все исходят от наличия одной колонки ( Остаток ) ДанныеСтроки.Остаток
а будет две колонки ( ПерваяКолонка и ВтораяКолонка ) как в правильной форме заменить? |
|||
34
catena
05.05.12
✎
10:44
|
(35)Оставь свою колонку "Остаток", сделай ее невидимой, заполни в одном месте - там где решаешь писать в КолонкаОдин или в КолонкаДва - сразу же пиши и в Остаток.
Криво, но зато не придецца весь код лопатить - а для тебя (и тем более для твоих работодателей) это важный момент. |
|||
35
m-serg74
05.05.12
✎
10:44
|
может
ТретьяКолонка = ?(Колонка_Где_АВ_ИЛИ_КЗ = АВ, ПерваяКолонка, ВтораяКолонка) + ДанныеСтроки.КПеречислению; |
|||
36
m-serg74
05.05.12
✎
10:45
|
или минус что там у тебя должно быть
|
|||
37
demous
05.05.12
✎
10:48
|
(34) например так? Если Выб.ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ
Тогда Стр.ПерваяКолонка = Выб.СуммаВзаиморасчетов Иначе Стр.ВтораяКолонка = Выб.СуммаВзаиморасчетов И Стр.Остаток=Выб.СуммаВзаиморасчетов КонецЕсли; |
|||
38
catena
05.05.12
✎
10:52
|
(37)"И"???
Если Выб.ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ Тогда Стр.ПерваяКолонка = Выб.СуммаВзаиморасчетов Иначе Стр.ВтораяКолонка = Выб.СуммаВзаиморасчетов КонецЕсли; Стр.Остаток=Выб.СуммаВзаиморасчетов; |
|||
39
m-serg74
05.05.12
✎
10:52
|
Если Выб.ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ Тогда
Стр.ПерваяКолонка = Выб.СуммаВзаиморасчетов; Иначе Стр.ВтораяКолонка = Выб.СуммаВзаиморасчетов; КонецЕсли; Стр.ТретьяКолонка = Выб.СуммаВзаиморасчетов - ХЗ; |
|||
40
demous
05.05.12
✎
10:53
|
(35) ?(Колонка_Где_АВ_ИЛИ_КЗ = АВ, ПерваяКолонка, ВтораяКолонка) = взамен ДанныеСтроки.Остаток ?
|
|||
41
m-serg74
05.05.12
✎
10:54
|
ну да
|
|||
42
m-serg74
05.05.12
✎
10:56
|
Стр.ТретьяКолонка = ?(Выб.ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ, Стр.ПерваяКолонка, Стр.ВтораяКолонка) - ХЗ;
|
|||
43
demous
05.05.12
✎
10:56
|
сейчас попробую этот вариант (38) , если нет, то думаю (35) должен пойти...
спасибо всем за помощь, щас попробую и отпишусь |
|||
44
m-serg74
05.05.12
✎
10:56
|
но лучше (39)
|
|||
45
demous
05.05.12
✎
10:57
|
- хз = эт что?)
|
|||
46
m-serg74
05.05.12
✎
10:57
|
зачем те колонка с остатком если потом исходя из нее считать еще одну? считайсразу третью
|
|||
47
demous
05.05.12
✎
10:57
|
Стр.ТретьКолонка = у меня ПослеОплаты колонка щас, это же туад?
|
|||
48
demous
05.05.12
✎
10:58
|
туда*
|
|||
49
m-serg74
05.05.12
✎
10:58
|
- хз(не знаю) = эт то что тебе надо отнимать
|
|||
50
m-serg74
05.05.12
✎
10:59
|
Стр.ПослеОплаты = ?(Выб.ВидПлатежа = Перечисления.Д_ВидПлатежа.АВ, Стр.ПерваяКолонка, Стр.ВтораяКолонка) - ДанныеСтроки.КПеречислению;
наверное |
|||
51
demous
05.05.12
✎
11:02
|
ну сразу отнимать не верно будет... это я прописываю на кнопку "Заполнить"
а вычисление происходит в другой процедуре, когда вручную вводится сумма КОплате, тогда и идет вычисление ПослеОплаты, то есть (18) |
|||
52
demous
05.05.12
✎
11:06
|
Айм сорри, проверю через два часа... главбух месяц закрывает(
|
|||
53
m-serg74
05.05.12
✎
11:06
|
ну я не могу, да и никто не сможет угадать что и когда у тебя вычисляется, вводится вручную, а потом опять вычисляется(((
|
|||
54
demous
05.05.12
✎
11:10
|
(53) я понимаю, благодарен всем за помощь, через пару часиков скажу результат)
|
|||
55
catena
05.05.12
✎
11:26
|
(53)Вот потому я и предлагаю оставить колонку Остаток, но сделать ее невидимой. Потом еще выяснится, что к этой колонке где-нибудь извне обращение идет. ТС с его опытом так проще и для бухов меньше нервов будет.
Он вон, похоже, еще и на боевой экспериментирует... |
|||
56
m-serg74
05.05.12
✎
11:32
|
catena, так я ж разве спорю, я вариант предложил, а решает пусть сам, ему потом по чайнику получать(((
|
|||
57
m-serg74
05.05.12
✎
11:36
|
я вот например за все время с 1С так и не научился рисковать))) сто раз на копии проверю, а уж потом)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |