helpf.pro
Регистрация

v8: Авизо Прочее Исходящее

Ermak
12.10.2011 17:05Прочитано: 3157
Нужна помощь!
При помощи обработки формируется документ АвизоПрочееИсходящее

title

Если менять руками значение в колонках Сумма по дебету или Сумма по кредиту, то в колонки СуммаНУ поставит значение т.к используеться событие ПриИзменении.
Мне нужно чтобы в колонки СуммаНУ ставилось автоматически значение = Сумма по дебету или Сумма по кредиту, но она не ставит. Какое мне событие лучше использовать или что то поменять в событии ПриИзменении?

Код 1C v 8.2 УП
 
Процедура ПриИзменении()
ТекущаяТаблица = ЭлементыФормы.ТабличнаяЧастьДанныеБух;

Если ТекущаяТаблица.ТекущаяКолонка.Имя = "Сумма"
И ТекущаяТаблица.ТекущиеДанные.Сумма <> 0 Тогда
ТекущаяТаблица.ТекущиеДанные.СуммаКт = 0;
ИначеЕсли ТекущаяТаблица.ТекущаяКолонка.Имя = "СуммаКт"
И ТекущаяТаблица.ТекущиеДанные.СуммаКт <> 0 Тогда
ТекущаяТаблица.ТекущиеДанные.Сумма = 0;
КонецЕсли;

Если ТекущаяТаблица.ТекущиеДанные.Сумма <> 0 Тогда
СуммаРасчет = ТекущаяТаблица.ТекущиеДанные.Сумма;
Иначе
СуммаРасчет = ТекущаяТаблица.ТекущиеДанные.СуммаКт;
КонецЕсли;

ТекущиеДанные = ТекущаяТаблица.ТекущиеДанные;

Если ТекущиеДанные.СуммаНУ = 0 Тогда
Если ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя = "Сумма" Тогда
ТекущиеДанные.СуммаНУ = ТекущиеДанные.Сумма;
ИначеЕсли ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя = "СуммаКт" Тогда
ТекущиеДанные.СуммаНУ = ТекущиеДанные.СуммаКт;
ИначеЕсли ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя = "СуммаНУ"
ИЛИ ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя = "СуммаПР" Тогда
//Сумму НУ не трогаем
Иначе
Если ЭтаФорма.ТекущийЭлемент.Колонки.Найти("СуммаКт") <> Неопределено Тогда
Если ТекущиеДанные.СуммаКт <> 0 Тогда
ТекущиеДанные.СуммаНУ = ТекущиеДанные.СуммаКт;
Иначе
ТекущиеДанные.СуммаНУ = ТекущиеДанные.Сумма;
КонецЕсли;
Иначе
ТекущиеДанные.СуммаНУ = ТекущиеДанные.Сумма;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Изменено 12.10.11 17:06:33
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
12.10.2011 18:11Ответ № 1
Вот:
Код 1C v 8.х
 ИначеЕсли ЭтаФорма.ТекущийЭлемент.ТекущаяКолонка.Имя = "СуммаКт" Тогда
ТекущиеДанные.СуммаНУ = ТекущиеДанные.СуммаКт;

при изменении Суммы Кт, сумма НУ она станет равной Сумме КТ

только убели условие Если ТекущиеДанные.СуммаНУ = 0 Тогда
Ermak
13.10.2011 08:26Ответ № 2
Убрал и не получилось, не заполнена. Когда я запускаю обработку, открывается документ АвизоПрочееИсходящее и в нем уже стоят значения СуммаКт или Сумма, мне надо чтобы еще стояло такое же значения в СуммаНУ. Условия ПриИзменени работает, когда я начинаю менять руками, а тут значения встают сами из за этого СуммаНУ пустая, вот и думаю может другое событие использовать, только какое не знаю.
E_Migachev
13.10.2011 10:11Ответ № 3
(2) Ermak, это нужно прописать в коде обрабокти которое создает документ Авизо, покажи код, скажу где дописать *13
Ermak
13.10.2011 11:25Ответ № 4
Вот код

Код 1C v 8.2 УП
 Процедура АвизовкиНажатие(Элемент)
Авизо = Документы.АвизоПрочееИсходящее.СоздатьДокумент();
Авизо.Организация=Справочники.Организации.НайтиПоКоду("000000002").Ссылка;
Авизо.СчетРасчетов=ПланыСчетов.Хозрасчетный.РасчетыПоТекущимОперациям;//79.02
Авизо.ОрганизацияПолучатель=ВыбФилиал;//Справочники.Организации.НайтиПоКоду("000000002").Ссылка;

Если ЭтаФорма.ЭлементыФормы.Панель1.ТекущаяСтраница= ЭтаФорма.ЭлементыФормы.Панель1.Страницы.Страница1 Тогда
Для А = 1 по СписокПлатежекИ.Количество() Цикл
Стр = СписокПлатежекИ.Получить(А-1);
Если Стр.ФлагВыгрузки=1 тогда
ИНН = Лев(Стр.плательщик,10);
Контр = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ИНН);

СтрА=Авизо.ДанныеБух.Добавить();
СтрА.СчетУчета=ПланыСчетов.Хозрасчетный.РасчетныеСчета;//51
//СтрА.СчетУчета=ПланыСчетов.Хозрасчетный.РасчетыПоТекущимОперациям;//79.02
СтрА.Субконто1=Справочники.БанковскиеСчета.НайтиПоКоду("01333");//измененно 25-10-2010("000000001");ГЭПБ("000000001");
СтрА.Субконто2=Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000006");
//СтрА.Подразделение=ОрганизацияПолучатель;
//СтрА.Субконто1=ВыбФилиал;
//СтрА.Субконто2=Справочники.Показатели79.НайтиПоКоду("000000002").Ссылка;
СтрА.СубконтоД3=Справочники.Показатели79.НайтиПоКоду("000000002").Ссылка;
СтрА.Количество=0;
СтрА.Валюта=Справочники.Валюты.НайтиПоНаименованию("руб.").Ссылка;
СтрА.Сумма=0;//Число(Стр.Сумма);
СтрА.СуммаКТ=Число(Стр.Сумма);//0;
СтрА.ВидДвижения=Перечисления.ТипыДвиженийПоФилиалу.ВДебет79;

//СтрА.ВидРасчетов=Перечисления.ВидыРасчетовПоФилиалам.Передача;

//СтрА.КорСчет=ПланыСчетов.Хозрасчетный.РасчетныеСчета;
СтрА.СодержаниеПроводки=Стр.Назначение;

//СтрА.Передача=Число(Стр.сумма);
//СтрА.Поступление=0;
//СтрА.Субконто1= Контр;
//СтрА.СубконтоД3=Справочники.Показатели79.НайтиПоКоду("000000014").Ссылка;
КонецЕсли;
КонецЦикла;
Иначе
Для А = 1 по СписокПлатежек.Количество() Цикл
Стр = СписокПлатежек.Получить(А-1);
Если Стр.ФлагВыгрузки=1 тогда
ИНН = Лев(Стр.плательщик,10);
Контр = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ИНН);

СтрА=Авизо.ДанныеБух.Добавить();

СтрА.СчетУчета=ПланыСчетов.Хозрасчетный.РасчетныеСчета;//51
//СтрА.СчетУчета=ПланыСчетов.Хозрасчетный.РасчетыПоТекущимОперациям;
//СтрА.Подразделение=ОрганизацияПолучатель;
//СтрА.Субконто1=ВыбФилиал;
//СтрА.Субконто2=Справочники.Показатели79.НайтиПоКоду("000000003").Ссылка;
СтрА.Субконто1=Справочники.БанковскиеСчета.НайтиПоКоду("01333");//измененно 25-10-2010("000000001");ГЭПБ
СтрА.Субконто2=Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("000000006");
СтрА.СубконтоД3=Справочники.Показатели79.НайтиПоКоду("000000002").Ссылка;
СтрА.Количество=0;
СтрА.Валюта=Справочники.Валюты.НайтиПоНаименованию("руб.").Ссылка;
СтрА.Сумма=Число(Стр.Сумма);//0;
СтрА.СуммаКТ=0;//Число(Стр.Сумма);
СтрА.ВидДвижения=Перечисления.ТипыДвиженийПоФилиалу.ВКредит79;
//СтрА.ВидРасчетов=Перечисления.ВидыРасчетовПоФилиалам.Прием;
//СтрА.Количество=0;
//СтрА.КорСчет=ПланыСчетов.Хозрасчетный.РасчетныеСчета;
СтрА.СодержаниеПроводки=Стр.Назначение;
//СтрА.Передача=0;
//СтрА.Поступление=Число(Стр.сумма);
//СтрА.Субконто1= Контр;
//СтрА.СубконтоД3=Справочники.Показатели79.НайтиПоКоду("000000014").Ссылка;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Авизо.Дата=КонецДня(КонПериода);
Авизо.Записать();
Авизо.ПолучитьФорму().Открыть();

Основание = Авизо.Ссылка;
Авизо1 = Документы.АвизоПрочееВходящее.СоздатьДокумент();

ПараметрыДокументаОснования = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(Основание);
Авизо1.ДокументОснование = ПараметрыДокументаОснования.Ссылка;

Авизо1.СчетРасчетов = ПараметрыДокументаОснования.СчетРасчетов;
Авизо1.Организация = ПараметрыДокументаОснования.ОрганизацияПолучатель;
Авизо1.ОрганизацияОтправитель = ПараметрыДокументаОснования.Организация;
Авизо1.НомерВходящегоДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(ПараметрыДокументаОснования);
Авизо1.ДатаВходящегоДокумента = ПараметрыДокументаОснования.Дата;
Авизо1.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Авизо1.ВидВзаиморасчетов79 = Справочники.Показатели79.НайтиПоКоду("000000002").Ссылка;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Авизо1.ДокументОснование);
Запрос.Текст = "ВЫБРАТЬ
| СчетУчета,
| Субконто1,
| Субконто2,
| Субконто3,
| СубконтоД3,
| Сумма как СуммаКТ,
| СуммаНУ,
| СуммаПР,
| СуммаВР,
| СуммаКТ как Сумма,
| Количество,
| Валюта,
| ВалютнаяСумма,
| СодержаниеПроводки
|ИЗ
| Документ.АвизоПрочееИсходящее.ДанныеБух КАК АвизоИсходящее
|
|ГДЕ
| АвизоИсходящее.Ссылка = &Ссылка";

Авизо1.ДанныеБух.Загрузить(Запрос.Выполнить().Выгрузить());
Авизо1.Дата=КонецДня(КонПериода);
Авизо1.Записать();
Авизо1.ПолучитьФорму().Открыть();

КонецПроцедуры
E_Migachev
13.10.2011 11:34Ответ № 5
после установки СтрА.СуммаКТ добавь
СтрА.СуммаНУ=СтрА.СуммаКТ;
Ermak
13.10.2011 12:10Ответ № 6
Спасибо все работает! Я пробовал так же но почему то не получилось, страно. *03
Ermak
13.10.2011 12:10Ответ № 7
Вопрос закрыт!
Подсказка: Для быстрого поиска ответов - используйте 'Поиск'
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.