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

v8: Регистры бузгалтерии

Bell
04.11.2013 18:27Прочитано: 1755
Здравствйте
Не типовая конфигурация
Ввели регистры бухгалтерию в базу
Откорретировал документ КорректировкаЗаписейРегистров все правильно отображается
Вопрос №1
Измерение и Ресурс ВАЛЮТА и ВАЛЮТНАЯСУММА имеют признак НЕ БАЛАНСОВЫЙ соответственно есть Дт и Кт
как сделать что бы при выводе в документе соответственные колонки(название) имели название ВалютаДт, ВалютаКт, ВалютанаяСуммаДт, ВалютаняСуммаКт, а сейчас повтоярются Валюта и ВалютнаяСумма?


Код 1C v 8.х
 Процедура НастроитьЗакладкиПанелиРегистровБухгалтерии()

Если ТаблицаРегистровБухгалтерии.Количество() = 0 Тогда

ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Подсказка.Видимость = Истина;
Сч = 0;
Пока Сч < ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Количество() Цикл
Если ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы[Сч].Имя<>"Подсказка" Тогда
ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Удалить(Сч);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
ЭлементыФормы.ПанельРегистровБухгалтерии.ОтображениеЗакладок = ОтображениеЗакладок.НеИспользовать;

Иначе
// Добавим новые страницы
ЭлементыФормы.ПанельРегистровБухгалтерии.ОтображениеЗакладок = ОтображениеЗакладок.Сверху;
Для каждого СтрокаТаблицыРегистров Из ТаблицаРегистровБухгалтерии Цикл
Найдена = Ложь;
Для каждого СтраницаПанели Из ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы Цикл
Если СтраницаПанели.Имя = СтрокаТаблицыРегистров.Имя Тогда
Найдена = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Найдена Тогда
Продолжить;
КонецЕсли;

СтраницаПанели = ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Вставить(ТаблицаРегистровБухгалтерии.Индекс(СтрокаТаблицыРегистров), СтрокаТаблицыРегистров.Имя, СтрокаТаблицыРегистров.Представление);

ЭлементыФормы.ПанельРегистровБухгалтерии.ТекущаяСтраница = СтраницаПанели;

// Расположим на странице командную панель
КоманднаяПанельРегистра = ЭлементыФормы.Добавить(Тип("КоманднаяПанель"), ("КоманднаяПанель" + СтрокаТаблицыРегистров.Имя), Истина, ЭлементыФормы.ПанельРегистровБухгалтерии);
КоманднаяПанельРегистра.Верх = 6;
КоманднаяПанельРегистра.Лево = 6;
КоманднаяПанельРегистра.Ширина = ЭлементыФормы.ПанельРегистровБухгалтерии.Ширина - 12 - 2;
КоманднаяПанельРегистра.Высота = 24;

КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Верх,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Верх);
КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,КоманднаяПанельРегистра,ГраницаЭлементаУправления.Верх);
КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Право);
КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Лево,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Лево);

// Расположим на странице табличное поле
ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), СтрокаТаблицыРегистров.Имя, Истина, ЭлементыФормы.ПанельРегистровБухгалтерии);
ПолеРегистра.Данные = "ДокументОбъект.Движения." + СтрокаТаблицыРегистров.Имя;

Если НЕ ЭтоНовый() и НЕ Модифицированность() Тогда
ПолеРегистра.Значение.Прочитать();
КонецЕсли;

ПолеРегистра.Верх = 30;
ПолеРегистра.Лево = 6;
ПолеРегистра.Ширина = ЭлементыФормы.ПанельРегистровБухгалтерии.Ширина - 12 - 2;
ПолеРегистра.Высота = ЭлементыФормы.ПанельРегистровБухгалтерии.Высота - 24 - 12 - 20;
ПолеРегистра.ТолькоПросмотр = Ложь;
ПолеРегистра.ИзменятьПорядокСтрок = Истина;
ПолеРегистра.ИзменятьСоставСтрок = Истина;

ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Верх,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Верх);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Низ);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Право);
ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Лево,ЭлементыФормы.ПанельРегистровБухгалтерии,ГраницаЭлементаУправления.Лево);

ПолеРегистра.СоздатьКолонки();

////

ПолеРегистра.Колонки.Период.Видимость = Ложь;
ПолеРегистра.Колонки.Регистратор.Видимость = Ложь;
ПолеРегистра.Колонки.НомерСтроки.Видимость = Ложь;

КоманднаяПанельРегистра.ИсточникДействий = ПолеРегистра;
КоманднаяПанельРегистра.АвтоЗаполнение = Истина;
КоманднаяПанельРегистра.Кнопки.Добавить("Разделитель" + СтрокаТаблицыРегистров.Имя);
Кнопка = КоманднаяПанельРегистра.Кнопки.Добавить(СтрокаТаблицыРегистров.Имя, ТипКнопкиКоманднойПанели.Действие, , Новый Действие("ПереключитьАктивность"));
Кнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Картинка;
Кнопка.Картинка = БиблиотекаКартинок.ПереключитьАктивность;
Кнопка.Подсказка = "Переключить активность";

КонецЦикла;

// Удалим лишние страницы
Индекс = 0;
Пока Истина Цикл

Если Индекс > ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Количество() - 2 Тогда
Прервать;
КонецЕсли;

СтраницаПанели = ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы[Индекс];

Если ТаблицаРегистровБухгалтерии.Найти(СтраницаПанели.Имя, "Имя") = Неопределено Тогда
ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Удалить(Индекс);
Продолжить;
КонецЕсли;

Индекс = Индекс + 1;

КонецЦикла;

ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы.Подсказка.Видимость = Ложь;
ЭлементыФормы.ПанельРегистровБухгалтерии.ТекущаяСтраница = ЭлементыФормы.ПанельРегистровБухгалтерии.Страницы[0];

КонецЕсли;

КонецПроцедуры
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
04.11.2013 21:55Ответ № 1
(0) Bell, я так понимаю названия берется из имен реквизитов
Bell
05.11.2013 20:48Ответ № 2
Да, Флаг базовый = ЛОЖЬ, длелает Дебет и кредит, а измерение и и русурс один
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.