Как объединить одинаковые строки в таблице, а значение суммировать?

Если речь идет о таблице значений, то есть такой метод Свернуть:
Свернуть(,);
Синтаксис:
Свернуть(<ГруппКолонки>,<СуммКолонки>)
Назначение:
Позволяет свернуть таблицу значений по соответствующим значениям колонок, т.е. заменяет на одну строку все дублирующие (по значениям группировочных колонок) строки, суммируя значения по суммируемым колонкам.
Параметры:
<ГруппКолонки> – группировочные колонки (номера или идентификаторы колонок через запятую), по которым группировать данные.
<СуммКолонки> – суммируемые колонки (номера или идентификаторы колонок через запятую), по которым суммировать данные.
Если же речь идет о табличной части документа, то делаете выгрузку табличной части в Таблицу Значений с использованием метода ВыгрузитьТабличнуюЧасть:
ВыгрузитьТабличнуюЧасть(,);
Синтаксис:
ВыгрузитьТабличнуюЧасть(<ТаблЗнач>,<Колонки>)
Назначение:
Выгрузить многострочную часть документа в таблицу значений.
Параметры:
<ТаблЗнач> – значение типа ‘‘Таблица значений’‘ (или ‘‘СписокЗначений’‘, если выгружается только одна колонка), куда выгружается многострочная часть документа. Колонки совмещаются по идентификаторам.
<Колонки> – необязательный параметр. Список колонок через запятую. Данный параметр указывает, какие колонки выгружать; если не указано, то все. Для номера строки документа создается отдельная колонка с идентификатором ‘‘НомерСтрокиДокумента’‘. При задании, какие колонки выгружать, для выгрузки номера строки надо указать колонку ‘‘НомерСтроки’‘.
Затем сворачиваете Таблицу Значений с использованием метода Свернуть и выгружаете свернутую таблицу значений обратно в табличную часть с использованием метода ЗагрузитьТабличнуюЧасть:
ЗагрузитьТабличнуюЧасть();
Синтаксис:
ЗагрузитьТабличнуюЧасть(<ТаблЗнач>)
Назначение:
Загрузить многострочную часть документа из таблицы значений.
Параметры:
<ТаблЗнач> – значение типа ‘‘Таблица значений’‘, откуда загружается многострочная часть документа. Колонки совмещаются по идентификаторам.

Комментарии | опубликовано: 14 Сентябрь 2009, 19:55

Как программно указать ориентацию текста в области таблицы? (Например, вертикально - 90 градусов)

Область = ТабДок.Область(“R4C10”);
Область.Текст(“Вертикальный текст”);
Область.ОриентацияТекста(90);
Этот метод верен в том случае, если таблица еще не выведена на форму. Если нужно обновить форму при интерактивном вводе, используйте метод таблицы ТолькоПросмотр(1) и затем для обновления таблицы (чтобы не перерисовывать) метод Показать(,,1) (с единицей в 3-м параметре).
В моем примере для того, чтобы пользователь визуально видел, какие ячейки он уже отредактировал, эти ячейки меняют шрифт на курсив. Я добавил и ориентацию текста, чтоб наверняка было заметно.
Замечу, что “вращение” идет против часовой стрелки. Так, с параметром 90 градусов текст выведется снизу вверх, 180 градусов – справа налево вверх тормашками, 270 градусов – снизу вверх и т.д.
Выравнивание всегда происходит относительно “стандартного” расположения текста.
Процедура ОбработкаЯчейкиТаблицы(сзРасшифровка, Фл, Таб, Адрес)
Если ТипЗначенияСтр(сзРасшифровка) = “Справочник” Тогда
Фл=1; // стандартный обработчик
Иначе
// мой обработчик
Если ВвестиЧисло(Цена,“Введите цену”,12,4)=0 Тогда
Возврат;
Иначе
Таб.Область(Адрес).Текст=?(Цена=0,”“,Формат(чЦена,“Ч12.4”));
сзРасшифровка.Установить(“Цена”,чЦена);
Таб.Область(Адрес).Расшифровка(сзРасшифровка);
Таб.Область(Адрес).Полужирный(0);
Таб.Область(Адрес).Курсив(1);
Таб.Область(Адрес).ОриентацияТекста(90); /

Таб.ТолькоПросмотр(1);
Таб.Показать(,,1);
ИначеЕсли ТипЗначенияСтр(сзРасшифровка) = “Документ” Тогда
ОткрытьФорму(сзРасшифровка,,1);
КонецЕсли;
КонецПроцедуры

Комментарии | опубликовано: 10 Сентябрь 2009, 19:54

Подскажите как можно поменять в 1С 7.7 название всех месяцев с русского на украинский во всех документах?

Прежде всего – какая у Вас конфигурация типовая или самописная?
Если типовая – то там уже всё сделано, необходимо в папку с базой положить файлы с прописью. Если эти файлы поместить в папку с программой (обычно это каталог programfiles\1cv77\Bin или programfiles\1cv77.adm\Bin).
Как именованы файлы:
первые три символа – международное название валюты, суффикс – язык, расширение SPL.
По содержимому это текстовые файлы. Пример прописи на украинском языке для гривны и названий месяцев в конце поста в Приложении.
Если база самописная, в которой не предусмотрена работа с национальными языками, кроме русского (он по умолчанию и прописан в платформе) – я расскажу поподробнее.
В типовых файлах прописи кроме месяцев есть еще и описание денежных единиц конкретной валюты на конкретном языке.
Вам понадобятся файлы прописи на украинском языке, и программно задать работу с конкретным языком оператором Прописть(ИмяФайлаПрописи). После этого все строки с буквенным форматированием (названия месяцев, суммы прописью и т.д.) будут выводиться на указанном в файле языке.
Например, Формат(ДатаДок, “ДДДММММГГГГ”) выведет строку “18 Березня 2009 р.”
В Глобальном модуле, чтоб не писать в каждом документе, определить процедуру, которая будет устанавливать язык для печатных форм. В типовых конфигурациях для этого используется процедура глУстПропись. Создайте её и Вы. В первом параметре передается валюта (гривня, рубли, доллары, евро и т.д.), во втором параметре язык литерой “р” для русского языка или “у” для украинского.
В справочнике Валюты определены реквизиты:
ФайлПрописиРус строка, для хранения имени файла (и пути) прописи на русском языке.
ФайлПрописиУкр строка, для хранения имени файла (и пути) прописи на украинском языке.
Процедура глУстПропись(Вал,Язык = “”) Экспорт
Язык = Нрег(Язык);
Если Язык = “” Тогда
// из константы
Если Константа.ФормыНаУкраинском = Нет Тогда
Пропись(СокрЛП(Вал.ФайлПрописиРус));
Иначе
Пропись(СокрЛП(Вал.ФайлПрописиУкр));
КонецЕсли;
ИначеЕсли (Язык = “р”) или (Язык = “русский”) Тогда
Пропись(СокрЛП(Вал.ФайлПрописиРус));
ИначеЕсли (Язык = “у”) или (Язык = “украинский”) Тогда
Пропись(СокрЛП(Вал.ФайлПрописиУкр));
КонецЕсли;
КонецПроцедуры
Хотя в конкретном случае с одной валютой – гривной и выводом всех печатных форм на украинском языке достаточно будет текст из Приложения сохранить в файл uahukr.spl и положить этот файл в папку с базой. А в процедуре печати достаточно будет написать Пропись(“uahukr.spl”);
Пример:
Процедура Печать()
Пропись(“uahukr.spl”)
....
создание и заполнение печатной формы
....
Приложение:
{“Speller”,
{“Money”,
{“Гривня”,“Гривні”,“Гривень”,“копійка”,“копійки”,“копійок”,“F”}},
{“Numbers”,
{“Один”,“Два”,“Три”,“Чотири”,“П‘ять”,“Шість”,“Сім”,“Вісім”,“Дев‘ять”,“Одна”,“Дві”,
“Десять”,“Одинадцять”,“Дванадцять”,“Тринадцять”,“Чотирнадцять”,“П‘ятнадцять”,“Шістнадцять”,“Сімнадцять”,“Вісімнадцять”,“Дев‘ятнадцять”,
“Двадцять”,“Тридцять”,“Сорок”,“П‘ятдесят”,“Шістдесят”,“Сімдесят”,“Вісімдесят”,“Дев‘яносто”,
“Сто”,“Двісті”,“Триста”,“Чотириста”,“П‘ятсот”,“Шістсот”,“Сімсот”,“Вісімсот”,“Дев‘ятсот”,
“Тисяча”,“Тисячі”,“Тисяч”,
“Мільйон”,“Мільйона”,“Мільйонів”,
“Мільярд”,“Мільярда”,“Мільярдів”,
“Трильйон”,“Трильйона”,“Трильйонів”,
“Нуль”}},
{“Date”,
{“Січень”,“Лютий”,“Березень”,“Квітень”,“Травень”,“Червень”,“Липень”,“Серпень”,“Вересень”,“Жовтень”,“Листопад”,“Грудень”,
“Січня”,“Лютого”,“Березня”,“Квітня”,“Травня”,“Червня”,“Липня”,“Серпня”,“Вересня”,“Жовтня”,“Листопада”,“Грудня”,
“р.”,“Квартал”}},
{“DateRange”,
{“Півріччя”,“Місяців”}},
{“WeekDay”,
{“Понеділок”,“Вівторок”,“Середа”,“Четвер”,“П‘ятниця”,“Субота”,“Неділя”}}
}

Комментарии | опубликовано: 7 Сентябрь 2009, 19:53


<--- Предыдущая страница Следующая страница --->