Как сдвинуть таблицу в 1с
Таблица значений часто применяется при программировании на 1С, потому что имеет множество полезных возможностей и работает очень быстро. Таблица значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.
//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(, , , , , , , )
Добавление строк в таблицу значений
Перебор строк таблицы значений
Сортировка таблицы значений
Поиск в таблице значений
Синтаксис: НайтиЗначение(,,)
Возвращает число: 0 - значение не найдено; 1 - значение найдено
Если указан параметр , то поиск производится только по заданной строке
Если указан параметр , то поиск производится только по заданной колонке
Итоги и группировка таблицы значений
//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть
Удаление строк и колонок из таблицы значений
ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.
В этом случае я рекомендую использовать следующий прием:
А вот еще один правильный алгоритм, предложенный Wlad:
Замечание(Туц). Предыдущий вариант не совсем правильный. Случай, когда последняя строка попадает под условие и в условии идёт обращение к строке таблицы, приводит к ошибке. Т.е. происходит попытка чтения для строки 0.
И ещё вариант, предложенный Туц:
Замечание (vligm). А я использую такой алгоритм (это, собственно говоря, шаблон):
Таблица значений как элемент диалога
Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.
Методы УстановитьЗначение и ПолучитьЗначение
Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).
ТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать).
Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.
Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки.
Таблица значений является полностью динамическим объектом, т.е. Вы можете манипулировать не только строками таблицы, добавляя и удаляя их, но и колонками.
Таблица значений может использоваться явно при создании в коде необходимого количества переменных типа ТаблицаЗначений , либо неявно: при добавлении элемента управления ТабличноеПоле на обычную форму, и ТаблицаФормы — на управляемую. Здесь мы рассмотрим только программную работу с таблицей значений.
Создание таблицы значений
Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :
Колонки таблицы значений
Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:
- Имя — идентификатор колонки (может содержать только алфавитные символы, цифры и знаки подчеркивания. Причем, начинаться имя колонки может только с буквы или символа подчеркивания);
- Заголовок — представление колонки в диалогах (может содержать произвольные символы);
- ТипЗначения — тип значения содержимого ячеек в этой колонке. Если тип не задан, в ячейке можно хранить значения произвольного типа;
- Ширина — ширина колонки в диалогах;
Доступ к колонкам производится через свойство Колонки объекта ТаблицаЗначений . Для добавления новой колонки используется метод Добавить():
Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():
Перебор колонок выполняется следующим образом:
Для удаления колонки используется метод Удалить():
Свойства колонки таблицы значений
Имя | Тип | Описание |
---|---|---|
Имя | Строка | символьный идентификатор колонки, по которому к ней можно обращаться из кода |
Заголовок | Строка | строковое представление колонки на форме |
ТипЗначения | ОписаниеТипов | свойство органичивает пространство доступных значений, которые можно указать в данной колонке |
Ширина | Число | ширина колонки на форме (выражается в количестве символов) |
Методы коллекции колонок таблицы значений
Вставить() | Вставляет новую колонку в указанную позицию коллекции |
Добавить() | Добавляет новую колонку в конец коллекции |
Количество() | Возвращает количество колонок в коллекции |
Найти() | Ищет колонку в коллекции по имени |
Очистить() | Удаляет все колонки из коллекции |
Сдвинуть() | Сдвигает колонку влево или вправо |
Удалить() | Удаляет колонку из коллекции |
Строки таблицы значений
С колонками разобрались. Давайте теперь разберемся со строками. Строки таблицы значений можно программно добавлять и удалять, перемещать и сортировать, а также выполнять операции поиска и отбора.
Добавление и удаление строк
Для добавления новой строки используется метод Добавить() объекта ТаблицаЗначений . Метод возвращает объект СтрокаТаблицыЗначений , с которым доступны дальнейшие манипуляции:
И только теперь мы можем заполнить строку данными. Для этого обращаемся к ячейкам строки, указывая идентификаторы колонок через точку:
Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():
Для удаления строки используется метод Удалить() объекта ТаблицаЗначений . Строку можно удалить либо передав методу непосредственно строку, либо ее индекс:
Перебор строк таблицы значений
Для перебора строк удобнее всего использовать оператор цикла Для Каждого . В редких случаях оправдано применение цикла Для :
Поиск строк
Все методы таблицы значений:
Вставить() | Вставляет строку на указанное место |
ВыбратьСтроку() | Позволяет интерактивно выбрать строку в диалоговом окне |
ВыгрузитьКолонку() | Выгружает значения ячеек указанной колонки в массив значений |
Добавить() | Добавлет новую строку в таблицу значений |
ЗагрузитьКолонку() | Загружает значения в ячейки указанной колонки из массива |
ЗаполнитьЗначения() | Заполняет ячейки указанных колонок определенным значением |
Индекс() | Возвращает индекс строки таблицы значений |
Итог() | Возвращает просуммированный итог по колонке таблицы значений |
Количество() | Возвращает количество строк в таблице значений |
Найти() | Выполняет поиск строки по значению |
НайтиСтроки() | Выполняет поиск строк по указанным параметрам |
Очистить() | Очищает строки таблицы значений |
Получить() | Возвращает строку по ее индексу |
Свернуть() | Выполняет сжатие строк и колонок таблицы значений |
Сдвинуть() | Сдвигает строку вверх или вниз по таблице |
Скопировать() | Создает новую таблицу значений копированием текущей |
СкопироватьКолонки() | Создает новую пустую таблицу значений путем копирования колонок текущей таблицы |
Сортировать() | Выполняет сортировку строк таблицы значений по указанным колонкам |
Удалить() | Удаляет строку таблицы значений |
Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:
Выделение строк в списке, для которого предусмотрен множественный режим выделения строк
Текущая и строка выше текущей
Shift + Up
Выделение строк также выполняется с использованием указателя мыши при нажатой клавише Shift или Ctrl.
Поле ввода
Действие
Сочетания клавиш
Поле картинки
Действие
Сочетания клавиш
Редактор форм
Действие
Сочетания клавиш
Редактор табличных документов
Действие
Сочетания клавиш
Редактор текстовых документов и модулей
Действие
Сочетания клавиш
Отладчик
Действие
Сочетания клавиш
Редактор картинок
Действие
Сочетания клавиш
Палитра свойств
Действие
Сочетания клавиш
Редактор карты маршрута
Действие | Сочетания клавиш |
Перейти на следующий элемент карты | Tab |
Перейти на предыдущий элемент карты | Shift + Tab |
Уменьшить ширину элемента карты | Shift + (Left) |
Увеличить ширину элемента карты | Shift + (Right) |
Уменьшить высоту элемента карты | Shift + (Up) |
Увеличить высоту элемента карты | Shift + (Down) |
Перемещение выделенного варианта вверх (только при выделенном варианте в элементе «Выбор варианта») | Ctrl + (Up) |
Перемещение выделенного варианта вниз (только при выделенном варианте в элементе «Выбор варианта») | Ctrl + (Down) |
Поиск | Ctrl + F |
Найти следующий | F3 |
Найти предыдущий | Shift + F3 |
Замена | Ctrl + H |
admin
24 thoughts on “ Горячие клавиши 1С 8.1 — сочетания клавиш 1С v8 для быстрого исполнения действий (1С: 8.1) ”
Здравствуйте, подскажите, как внутри документа можно переключать вкладки через клавиатуру?
Если в названии вкладки есть подчеркнутая буква (в тексте элемента управления написано что=то вроде «В&кладка» — будет подчеркнута буква к), тогда Alt+эта_буква. Иначе похоже никак.
Алексей, спасибо, что напомнили.
Юлия, здравствуйте.
Попробуйте «Ctrl + Page Down» (или
«Ctrl + Alt + F»). Но чтобы это сработало, нужно, чтобы активным элементом формы была одна из страниц (а не какой-то реквизит шапки)
Добрый день!
Подскажите, 1с 7.7. можно было Анализ счета копировать и группировать на один лист. Например по доходам группировала и печатала на одном листе несколько Анализ счетов. Возможно ли такое в 1С 8.1.?
Спасибо заранее
Добрый день!
Не очень понятно, что именно вызывает затруднения. Ваш вопрос в том, как это сделать с помощью горячих клавиш? Под группировкой Вы подразумеваниете сворачивание подробной аналитики? Чтобы отчет занимал меньше места на листе?
Если да, то сворачивание групп в отчете делается с помощью сочетания (одновременного нажатия) клавиш:
«Ctrl» + «Shift» + знак «-» на правой клавиатуре цифр.
Вопрос не к горячим клавишам. А вообще в целом. Попытаюсь еще раз описать о чем речь. Например: Анализ счета 1420 и 3130 хочу распечатать на одном листе. Как это сделать?
Можно попробовать сделать это следующим образом:
0. Сформировать отчет по первому счету.
1. Выделить мышью обасть отчета, которую хотите скопировать (зажать левую кнопку мыши и потянуть).
2. Затем нажать сочетание клавиш «Ctrl» + «C» (выделенная область скопируется в буфер).
3. Затем в меню «Файл – Новый – Табличный документ».
4. Щелкнуть мышью в первую ячейку.
5. Затем нажать сочетание клавиш «Ctrl» + «V» (содержимое буфера будет вставлено в ноую таблицу).
6. Сформировать отчет по второму счету и проделать с ним то же самое, только на этот раз не создавать новую таблицу, а добавить в низ уже существующей.
Спасибо огромное!
Успехов Вам, в вашей работе!
Получилось как Вы описали. По сути элементарно, но не для женской логики ))
Форум
Создание таблицы значений
Таблица значений - это двумерный массив в 1С, который предназначен для хранения и обработки промежуточных данных, возникающих в процессе работы программы. Таблица значений часто применяется при программировании на 1С, потому что имеет множество полезных возможностей и работает очень быстро. Таблица значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.
ТабЗнач.НоваяКолонка("Номер");
ТабЗнач.НоваяКолонка("Сотрудник");
ТабЗнач.НоваяКолонка("Должность");
ТабЗнач.НоваяКолонка("Оклад");
//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка(, , , , , , , )
ТабЗнач.НоваяКолонка("Номер","Число",10,0);
ТабЗнач.НоваяКолонка("Сотрудник","Справочник.Сотрудники");
ТабЗнач.НоваяКолонка("Должность","Справочник.Должности");
ТабЗнач.НоваяКолонка("Оклад","Число",10,2);
Добавление строк в таблицу значений
ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 1;
ТабЗнач.Сотрудник = "Иванов Иван Иванович"; //следите за типом колонки!
ТабЗнач.Должность = "Программист";
ТабЗнач.Оклад = 20000;
ТабЗнач.НоваяСтрока();
ТабЗнач.Номер = 2;
ТабЗнач.Сотрудник = "Петров Петр Петрович";
ТабЗнач.Должность = "Бухгалтер";
ТабЗнач.Оклад = 10000;
//обычно строки добавляются в цикле
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
. ТабЗнач.НоваяСтрока();
. ТабЗнач.Номер = СпрСотр.Код;
. ТабЗнач.Сотрудник = СпрСотр.ТекущийЭлемент(); //следите за типом колонки!
. ТабЗнач.Должность = СпрСотр.Должность;
. ТабЗнач.Оклад = СпрСотр.Оклад;
КонецЦикла;
Перебор строк таблицы значений
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;
2-й способ.
Для НомерСтроки = 1 По ТабЗнач.КоличествоСтрок() Цикл
. ТабЗнач.ПолучитьСтрокуПоНомеру(НомерСтроки);
. Сообщить(ТабЗнач.Сотрудник);
КонецЦикла;
Сортировка таблицы значений
//сортировать по должности по возрастанию
ТабЗнач.Сортировать("Должность+");
//сортировать по должности по возрастанию, а внутри должности по убыванию оклада
ТабЗнач.Сортировать("Должность+,Оклад-");
Поиск в таблице значений
Синтаксис: НайтиЗначение(,,)
Возвращает число: 0 - значение не найдено; 1 - значение найдено
Если указан параметр , то поиск производится только по заданной строке
Если указан параметр , то поиск производится только по заданной колонке
номстр = 0;
Если ТабЗнач.НайтиЗначение (10000, номстр, "Оклад") = 1 Тогда
. ТабЗнач.ПолучитьСтрокуПоНомеру(номстр);
. Сообщить(ТабЗнач.Сотрудник);
КонецЕсли;
Итоги и группировка таблицы значений
//получить итог по колонке можно методом Итог
ВсеОклады = ТабЗнач.Итог("Оклад")
//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть
//проссумировать оклады по каждой должности
ТабЗнач.Свернуть("Должность","Оклад");
//Можно группировать и суммировать сразу по нескольким колонкам
ТабЗнач.Свернуть("Категория, Должность","Оклад,Налог");
Удаление строк и колонок из таблицы значений
ТабЗнач.Очистить(); //очистить таблицу значений и удалить колонки
ТабЗнач.УдалитьСтроки(); //удаляет все строки (колонки сохраняются)
ТабЗнач.УдалитьСтроку(); //удаляет текущую строку
ТабЗнач.УдалитьСтроку(3); //удаляет 3-ю строку
ТабЗнач.УдалитьКолонку("Оклад"); //удаляет колонку Оклад
ТабЗнач.УдалитьКолонку(2); //удаляет 2-ю колонку
ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.
//ЭТА ПРОГРАММА НЕПРАВИЛЬНАЯ .
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Если Тогда
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей,
. КонецЕсли;
КонецЦикла;
В этом случае я рекомендую использовать следующий прием:
ТабЗнач.ВыбратьСтроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
~начало:
. Если Тогда
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей
. Если ТабЗнач.НомерСтроки<>0 Тогда
. Перейти ~начало;
. КонецЕсли;
. КонецЕсли;
КонецЦикла;
А вот еще один правильный алгоритм, предложенный Wlad:
ТабЗнач.выбратьстроки();
Пока ТабЗнач.ПолучитьСтроку()=1 Цикл
. Пока () и (ТабЗнач.НомерСтроки<>0) Цикл
. ТабЗнач.УдалитьСтроку(); //следующая строка стала текущей
. КонецЦикла;
КонецЦикла;
Таблица значений как элемент диалога
Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.
//установить курсор на указанную колонку или можно узнать, где находится курсор
ТабЗнач.ТекущаяКолонка(НоваяКолонка,ТекКолонка);
//установить курсор на указанную строку или можно узнать, где находится курсор.
ТекСтрока = ТабЗнач.ТекущаяСтрока(НовСтрока);
ТабЗнач.ВидимостьКолонки("Оклад",0); //скрыть колонку Оклад
ТабЗнач.ВидимостьКолонки("Должность, Сотрудник",1); //показать колонки Должность и Сотрудник
ТабЗнач.ВидимостьКолонки("Оклад",1,1); //показать колонку Оклад в 1-й позиции
//можно зафиксировать верхние строки и левые колонки для удобства прокрутки таблицы значений в диалоге
ТабЗнач.Фиксировать(КолСтрок,КолКолонок);
Методы УстановитьЗначение и ПолучитьЗначение
Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).
ТабЗнач.НоваяСтрока();
ТабЗнач.УстановитьЗначение(1,"Номер",100);
ТабЗнач.УстановитьЗначение(1,"Сотрудник","Иванов Иван Иванович");
ТабЗнач.УстановитьЗначение(1,3,10000); //обращение к 1-й строке и 3-й колонке ("Оклад")
Номер = ТабЗнач.ПолучитьЗначение(1,"Номер");
ФИО = ТабЗнач.ПолучитьЗначение(1,"Сотрудник");
Оклад = ТабЗнач.ПолучитьЗначение(1,3); //обращение к 1-й строке и 3-й колонке "Оклад"
Выгрузка таблицы значений
//выгрузить 10 сотрудников с наибольшими окладами в новую таблицу значений
ТабЗнач.Сортировать("Оклад-");
ТабЗнач.Выгрузить(НоваяТабЗнач,1,10,"Сотрудник,Оклад");
Сочетания горячих клавиш для повышения удобства и ускорения работы в программах системы "1С:Предприятие".
Использование "горячих клавиш" является одним из инструментов повышения эффективности работы с программами системы "1С:Предприятие".
Как правило, действия с помощью сочетания клавиш выполняются быстрее, чем аналогичные через меню с использованием мыши.
Льготный переход с базовых версий 1С:Бухгалтерия, 1С:Управление нашей фирмой, 1С:Розница и 1С:Зарплата и управление персоналом в облако 1С:Фреш со скидкой более 50% !
Облачные версии программ 1С не требуют активации программных лицензий и ввода пинкодов, не привязываются к какому-то конкретному компьютеру и позволяют работать с любого устройства, имеющего доступ в интернет.
Освоив горячие клавиши, вы упростите и значительно ускорите выполнение часто повторяемых действий.
Описание сочетания горячих клавиш можно вызвать непосредственно в программе 1С нажав "Shift + F1".
Обратите внимание, что одни и те же сочетания горячих клавиш могут работать в одних конфигурациях (например, в старых конфигурациях на обычных формах) и не работать в других (например, в новых конфигурациях на управляемых формах) и наоборот.
Одни и те же сочетания горячих клавиш могут вызывать различные действия (или не работать вовсе) в зависимости от того, где они применяются (например в таблице, при редактировании текстового документа или в поле ввода), поэтому одно и тоже сочетание горячих клавиш может несколько раз встречаться в таблице.
Данное сочетание клавиш открывает окно, в котором будет предложено выбрать тип создаваемого нового документа в различных форматах - например, в текстовом, табличном или HTML
Следующая страниц.
Быстрое листание активного документа вперед
Предыдущая страница
Быстрое листание активного документа назад
Активизировать следующее обычное окно одного сеанса или переход на следующую закладку (в режиме открытия окон "В закладках")
Позволяет активизировать следующее окно среди открытых в рамках конфигурации. Нажатие в цикле с удерживанием клавиши Ctrl позволяет листать отрытые окна "вперед"
Перейти к редактированию содержимого ячейки
Перейти в конец строки
Перемещает курсор в конец строки
Выделить текст от курсора до начала строки
Вырезать выделенный текст в буфер обмена
Перейти в конец строки
Прокрутить на размер окна влево
Если данная статья была для Вас полезной, то Вы можете поддержать авторов нашего сайта, оставив свой отзыв. Если у Вас установлен Яндекс.Браузер, то в правом верхнем углу браузера нажмите на кнопку отзывов.
Вы можете оценить сайт по пятибальной шкале, выбрав соответствующее количество звезд, а при желании написать несколько слов со своим мнением о данной статье.
Похожие статьи на тему:
Горячие клавиши в 1С:Бухгалтерии, Использование сочетания горячих клавиш в программах системы 1С:Предприятие, Как использовать сочетание клавиш для ускорения работы с программами 1С:Предприятие, Ускорение работы в программе 1С:Управление торговлей при использовании комбинации клавиш, Как использовать быстрые клавиши для ускорения работы 1С:Предприятие, Сочетания горячих клавиш в программах 1С:Предприятие для быстрого ввода информации
Теги: Горячие клавиши в 1С:Бухгалтерии, Использование сочетания горячих клавиш в программах системы 1С:Предприятие, Как использовать сочетание клавиш для ускорения работы с программами 1С:Предприятие, Горячие клавиши для работы в 1С:Управление торговлей
Читайте также: