Примеры работы в 1С 8

Небольшой FAQ по актуальным вопросам.

Как составить запрос к табличной части документа?

Пример запроса:

Построитель.Текст = "ВЫБРАТЬ
|	Товары.Ответственный,
|	Товары.Ссылка КАК Документ,
|	Товары.Номенклатура,
|	СУММА(Товары.Сумма) КАК Сумма
|ИЗ
|	Документ.ЧекККМ.Товары КАК Товары
|ГДЕ
|	Товары.Ссылка.Дата Между &ДатаНач и &ДатаКон
|СГРУППИРОВАТЬ ПО
|	Товары.Ссылка,
|	Товары.Ответственный,
|	Товары.Номенклатура";

Особенность этого запроса в том, что мы обращаемся к табличной части «Товары». Поэтому к реквизитам документа «ЧекККМ» мы обращаемся через свойство «Ссылка». Только в этом случае мы сможем получить строки табличной части документа. Если не указать свойство «Ссылка», то появится ошибка, примерно такого вида:

{(7, 5)}: Поле не найдено «Документ.ЧекККМ.Дата»

 

Где в 1С:Предприятие 8 можно увидеть размеры МЗП и МРП?

Откройте пункт меню:

Операции-> Регистры Сведений-> Регламентированные расчетные показатели

или

Зарплата->Общие параметры расчета зарплаты-> Регламентированные расчетные показатели

 

Где редактировать журнал в 1С:Предприятие 8 для документа, который не входит ни в один журнал?

Если документ, не входит ни в один журнал системы 1С:Предприятие 8, тогда журнал для данного документа генерируется системой автоматически. Этот журнал является формой списка данного документа. Эту форму списка можно создать в Конфигураторе и настроить.

 

Как изменить панель функций в 1С:Предприятие 8?

Панель функций это обработка, её надо менять! В Конфигураторе она находится в дереве метаданнных панели «Конфигурация», ветка «Обработки» под названием «ПанельФункций».

 

Как отобразить данные в элементе управления ТабличноеПоле?

ЭлементыФормы.ТабличноеПоле.Значение=ТаблицаЗначений1; ЭлементыФормы.ТабличноеПоле.СоздатьКолонки();

 

Как объединить конфигурации в 1С8?

Вам передали .cf-файл, с измененной конфигурацией. Как внести эти изменения в Вашу конфигурацию?

Попросите всех выйти из 1С.

Зайдите в Конфигуратор и для начала сделайте выгрузку данных: Администрирование — Выгрузить информационную базу…

Укажите путь куда выгружать, затем назовите файл, например текущей датой: 19.01.2011.dt.

Откройте дерево конфигурации. Конфигурация — Открыть конфигурацию.

После выгрузки откройте пункт меню Конфигурация — Сравнить, объединть с конфигурацией из файла…

Выберите .cf-файл, появится окно «Сравнение, объединение», нажмите кнопку «Выполнить». Затем OK.

Нажать F7 для сохранения конфигурации.

 

Как правильно удалить строки из ТаблицыЗначений в 1С8?

Предположим, нужно удалить все строки, которые содержат букву «G» во второй колонке.

Процедура УдалитьСтрокиТаблицы(Таб);
	Сч = 0;
	Пока Сч < Таб.Количество() Цикл
		Строка = Таб[Сч];
		Если Найти(Строка.Получить(1),"G") > 0 Тогда
			Таб.Удалить(Строка);
		Иначе // Благодаря этой переменной мы 
		      // не пропускаем строки в таблице значений
			Сч = Сч + 1;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

 

Как правильно реализовать цикл с постусловием?

Повторять = Истина;
Пока Повторять Цикл
	А=А+1;
	Повторять = (А<10);
КонецЦикла;

Благодаря переменной Повторять наш цикл выполнится хотя бы один раз.

 

Как реализовать цикл с уменьшающимся счетчиком?

Вариант 1.

Зн1 = 100;
Зн2 = 1;
Сч=Зн1;
Пока Сч>=Зн2 Цикл
	Сч=Сч-1;
КонецЦикла;

Вариант 2.

Вариант 2.
Для Сч = -Зн1 По -Зн2 Цикл
	// Чтобы получить положительную величину,
	// если вдруг Сч станет положительным.
	СчЗн = Макс(Сч, -Сч);
КонецЦикла;

 

Как ввести Реализацию товаров и услуг в валюте?

  1. У контрагента создать валютный договор (выбрав в договоре валюту в поле валюта, например: USD). В карточке Контрагента выделить в списке договоров валютный договор и нажать кнопку «Установить основным», чтобы сделать его таковым.
  2. Создаём документ «Реализация», выбираем контрагента с основным валютным договором и нажимаем кнопку «Цены и валюта» в левом верхнем углу документа «Реализация». Затем в появившейся форме выбираем нужную нам валюту, например: USD.

 

Как получить название документа (аналог метода 1С 7.7 Вид())?

ДокументСсылка.Метаданные().Имя; 
// получаем: УвольнениеИзОрганизаций

ДокументСсылка.Метаданные().ПолноеИмя();
// получаем: Документ.УвольнениеИзОрганизаций

 

Как в запросе проверить поле на пустую ссылку?

ВЫБРАТЬ
	Начисление.Ссылка,
	Увольнение.Ссылка КАК Ссылка1,
	Начисление.ДокументОснование,
	Увольнение.ДокументОснование КАК ДокументОснование1
ИЗ
	Документ.НачислениеЗарплатыРаботникамОрганизаций КАК Начисление
	СОЕДИНЕНИЕ
	Документ.УвольнениеИзОрганизаций КАК Увольнение
ПО
Начисление.ДокументОснование = Увольнение.ДокументОснование 
ГДЕ
(Начисление.ДокументОснование<>
ЗНАЧЕНИЕ(Документ.ТабельУчетаРабочегоВремениОрганизации.ПустаяСсылка))

Заметим, что в параметре пишем «Документ», а не «Документы» и «ПустаяСсылка» без скобок.

 

Где храниться список баз в 1С:Предприятие 8?

Список баз в Windows:

1С:Предприятие 8.1 — %AppData%1C1Cv81ibases.v8i

1С:Предприятие 8.2 — %AppData%1C1CEStartibases.v8i

 

Как при разворачивании формы на весь экран сделать, чтобы табличное поле изменяло свой размер?

Если вставить на форму элемент управления табличное поле, тогда автоматически формируются необходимые привязки для этого табличного поля.

Бывает, что привязки сбрасываются из-за каких-то наших действий. Из-за того табличное поле перестает масштабироваться или растягиваться по форме.

Поэтому привязки табличного поля необходимо настроить.

Нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…».

В открывшейся форме мы увидим настройки привязок табличного поля.

Чтобы облегчить себе труд и быть уверенными в правильности привязок, создайте новую форму и скопируйте Ваше табличное поле со старой формы в новую.

На новой форме, нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…»

Как видим на новой форме привязки автоматически настроились так, чтобы табличное поле масштабировалось или растягивалось по форме.

Запомним эти привязки, чтобы использовать для нашего табличного поля на старой форме.

Нажмём на табличном поле старой формы правой кнопкой мыши и выберем пункт меню «Установить привязки…».

Установим привязки аналогично тому, что мы увидели на новой форме. Готово!

 

Где у регистра сведений изменить способ редактирования записи?

В дереве метаданных нажмите на нужном регистре сведений правой кнопкой мыши.

В контекстном меню выберите пункт «Свойства». В диалоге свойств пункт «Способ редактирования».

Выбирайте на вкус «В списке», «В диалоге» или «Обоими способами»!

 

Как программно установить видимость колонки табличного поля?

ЭлементыФормы.РегистрСведенийСписок.Колонки.Период.Видимость = Истина;

Где, «Период» — колонка табличного поля «ЭлементыФормы.РегистрСведенийСписок».

 

Как перебрать значения ресурсов регистра сведений, используя названия ресурсов?

НаборЗаписей1 = РегистрыСведений.Тарифы.СоздатьНаборЗаписей(); 
НаборЗаписей1.Отбор.Период.Установить(ДатаТекущегоТарифа1); 
НаборЗаписей1.Отбор.Владелец.Установить(ОсновнаяОрганизация);

НаборЗаписей1.Прочитать();
Если НаборЗаписей1.Количество() > 0 Тогда
	Для Каждого Запись Из НаборЗаписей1 Цикл 
		Ресурсы = Метаданные.РегистрыСведений.Тарифы.Ресурсы;	
		Для Каждого Ресурс Из Ресурсы Цикл 
			Сообщить("Измерение регистра " + Ресурс.Имя + 
				". Значение: " + Запись[Ресурс.Имя]);
		КонецЦикла;
	КонецЦикла; 
КонецЕсли;

Таким же образом можно перебрать значение измерений или реквизитов, заменив:

Метаданные.РегистрыСведений.Тарифы.Ресурсы;

На:

Метаданные.РегистрыСведений.Тарифы.Измерения;

Или:

Метаданные.РегистрыСведений.Тарифы.Реквизиты;

 

Как программно активизировать строку табличного поля с типом значения РегистрСведенийСписок?

В 1С:Предприятии 8 для активизации строки конкретного табличного поля следует выполнить установку свойства ТекущаяСтрока соответствующего элемента управления.

Этому свойству присваивается значение, идентифицирующее строку, которую необходимо активизировать.

Тип значения зависит от типа данных, с которыми связано табличное поле.

Например, для списка справочника это будет ссылка на элемент справочника, а для табличной части — строка табличной части.

Если тип значения РегистрСведенийСписок, тогда свойству ТекущаяСтрок присваивается значение типа — РегистрСведенийКлючЗаписи.

Пример:

Отбор1 = Новый Структура;
Отбор1.Вставить("Период", ДатаТекущегоТарифа);
Отбор1.Вставить("Владелец", ОсновнаяОрганизация);
Отбор1.Вставить("Вес", 0.3);
Рег = РегистрыСведений.Тарифы;
КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор1);//Тип: РегистрСведенийКлючЗаписи
// РегистрСведенийСписок - табличное поле для отображения списка 
// записей регистра сведений
ЭлементыФормы.РегистрСведенийСписок.ТекущаяСтрока = КлючЗаписи;

Отбор должен однозначно идентифицировать запись в табличном поле.

 

Как создать контекстное меню для табличного поля?

Создать на форме невидимую командную панель, т.е. убрать флажок «Видимость» в свойствах командной панели.

В свойствах табличного поля убрать флажок «АвтоКонтекстноеМеню».

Из выпадающего списка «КонтекстноеМеню» выбрать только что созданную командную панель.

Теперь можно добавлять разные команды в командную панель. Они будут отображаться в контекстном меню табличного поля.

 

Как в табличном поле с типом значения справочник, отображать только группы?

Откроем свойства табличного поля и найдем свойство «ПросмотрГруппИЭлементов».

В выпадающем списке выберем «Группы».

 

Как изменить значение ячейки табличного поля?

Предположим, необходимо добавить РНН контрагента в ячейку, находящуюся рядом с ячейкой контрагента.

Процедура ПриПолученииДанных(Элемент, ОформленияСтрок)
	Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
		ОформлениеСтроки.Ячейки.РНН.Значение =
			ОформлениеСтроки.ДанныеСтроки.Контрагент.РНН;
	КонецЦикла;
КонецПроцедуры

 

Как сделать текущим значение колонки табличного поля и присвоить этой колонке тип?

Предположим, что колонке «СубконтоДоходовБУ3» нужно присвоить тип «СправочникСсылка.ПодразделенияОрганизаций».

СтрокаТабличнойЧасти = ЭлементыФормы.Услуги.ТекущиеДанные;
ЭлементыФормы.Услуги.ТекущаяКолонка =
		 ЭлементыФормы.Услуги.Колонки.СубконтоДоходовБУ3;
СтрокаТабличнойЧасти.СубконтоДоходовБУ3 =
		 Справочники.ПодразделенияОрганизаций.ПустаяСсылка();

 

Как сравнить строки в запросе?

|    (Номер ПОДОБНО &НомерНакладной)
Запрос.УстановитьПараметр("НомерНакладной", "%"+НомерНакладной+"%");

 

Как в таблице значений установить флажок элементом управления для колонки?

ТекКолонка = ЭлементыФормы.ТабличноеПоле.Колонки["Загружать"];
ТекКолонка.УстановитьЭлементУправления(Тип("Флажок"));

 

Как программно создать колонку табличного поля с элементом управления «Флажок»?

ТекКолонка = ЭлементыФормы.ТаблицаНакладных.Колонки["Загружать"];
ТекКолонка.УстановитьЭлементУправления(Тип("Флажок"));
ТекКолонка.ДанныеФлажка = "Загружать";
ТекКолонка.Ширина = 3;
ТекКолонка.ТекстШапки = "";  
ТекКолонка.РежимРедактирования=РежимРедактированияКолонки.Непосредственно;
ТекКолонка.ЭлементУправления.ПрозрачныйФон = Истина;

Свойство «РежимРедактирования» определяет режим редактирования ячейки табличного поля, если его не установить в «РежимРедактированияКолонки.Непосредственно» придется дополнительно кликать мышью, чтобы изменить флажок.

Свойство «ЭлементУправления» содержит элемент управления в данном случае флажок, через это свойство можно «достучаться» к свойствам и событиям флажка. Свойство «ПрозрачныйФон» является свойством элементом управления флажка.

Кроме того, чтобы отображался фтолько флажок без текста ДаНет необходимо в обработчике события табличного поля «ПриВыводеСтроки» написать следующее:

Процедура ТаблицаНакладныхПриВыводеСтроки(Элемент, ОформлениеСтроки)
	ОформлениеСтроки.Ячейки.Загружать.ОтображатьТекст = Ложь; 
КонецПроцедуры

 

Где установить дату для печати БИН в Счет-Фактурах?

Операции-Константы | Настройка параметров учета | Печать | Вывод БИН/ИИН в форме счета-фактуры. | Установить дату в поле «Начиная с «.

 

Как сделать резервную копию информационной базы?

Для этого существует два способа:

    1. Скопируйте файл 1СV8.1CD в отдельный каталог.

или

  1. Используйте режим выгрузки информационной базы. Для этого:
    • откройте базу в режиме Конфигуратора;
    • пункт меню «Администрирование» | «Выгрузка информационной базы»;
    • в открывшемся диалоге укажите имя файла, в который будут записаны данные.

 

Что делать, если в оборотке не идут остатки?

Пробуем выполнять по пунктам, если первый не помог, выполняем следующий.

  1. Пересчёт итогов:
    • Откройте базу в режиме 1С:Предприятие | Пункт меню Операции | Управление итогами…
    • Закладка Установка границы рассчитанных итогов.
    • Установите флажок «Все регистры».
    • В колонке «Рассчитать по» сначала установите дату начала ведения учета и нажмите кнопку «Выполнить».
    • После пересчёта В колонке «Рассчитать по» укажите дату актуальности, например, конец текущего месяца и нажмите кнопку «Выполнить».
  2. Перепроведение документов:
    • Откройте базу в режиме 1С:Предприятие.
    • Пункт меню «Сервис» | «Универсальные обработки» | «Групповая обработка справочников и документов».
    • В выпадающем списке «Тип объекта:» выберите «Документы».
    • Нажмите кнопку «Добавить» (зелёная с белым плюсиком), чтобы выбрать те документам, которые хотите перепровести.
    • В табличном поле «Отбор» можно установить условия отбора документов. Например, выбрать только проведённые.
    • Нажав кнопку «Отобрать», переходим на закладку «Обработка».
    • В выпадающем списке «Действие» выберите — «Изменить: [Проведение документа]».
    • В следующем выпадающем списке выберите — «Установить» и нажмите кнопку «Выполнить».
  3. Тестирование и исправление (перед этим сделать резервную копию базы):
    • откройте базу в режиме Конфигуратора;
    • пункт меню «Администрирование» | «Тестирование и исправление»;
    • установите все флажки и нажмите кнопку «Выполнить».

 

Как реализовать событие двойного клика по строке табличного поля?

Табличное поле имеет событие «Выбор».

В обработчике этого события напишите:

Процедура СписокДелВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	// И последующий код для обработки двойнного клика на строке
КонецПроцедуры

 

Как узнать существует ли колонка табличного поля?

Если СписокДел.Колонки.Найти(Колонка.Имя) = Неопределено Тогда
     ...
КонецЕсли;

 

Как узнать имеет ли текущий пользователь определённую роль?

Используйте функцию сеанса работы «РольДоступна» (IsInRole) , которая определяет доступность указанной роли текущему пользователю:

Если Не РольДоступна("ПравоАдминистрирования") Тогда
    Сообщить("Роль «Право администрирования» не доступна!");
КонецЕсли;

Или используйте следующую функцию:

Функция ПравоАдмина()
	Для Каждого РольМетаданных из Метаданные.Роли Цикл
		ИмяРоли = РольМетаданных.Имя;
		Если ИмяРоли = "ПравоАдминистрирования" Тогда 
			Код = СокрЛП(глТекущийПользователь.Код);
			Юзер = ПользователиИнформационнойБазы.НайтиПоИмени(Код);
			Возврат Юзер.Роли.Содержит(РольМетаданных);
		КонецЕсли;
	КонецЦикла;
КонецФункции // ПравоАдмина()

 

Как получить номер строки таблицы значений?

Нужно использовать метод таблицы значений «Индекс» (IndexOf) , которая получает индекс строки в коллекции строк таблицы значений:

ИдеиРазвития.Колонки.Вставить(0,"Номер",, "№", 1);
Для Каждого Строка Из ИдеиРазвития Цикл
	Строка.Номер = ИдеиРазвития.Индекс(Строка) + 1;		
КонецЦикла;

 

Как пометить на удаление документы?

  • Откройте базу в режиме 1С:Предприятие.
  • Пункт меню «Сервис» | «Универсальные обработки» | «Групповая обработка справочников и документов».
  • В выпадающем списке «Тип объекта:» выберите «Документы».
  • Нажмите кнопку «Добавить» (зелёная с белым плюсиком), чтобы выбрать те документам, которые хотите пометить на удаление.
  • В табличном поле «Отбор» можно установить условия отбора документов. Например, выбрать только проведённые.
  • Нажав кнопку «Отобрать», переходим на закладку «Обработка».
  • В выпадающем списке «Действие» выберите — «Изменить: [Пометка на удаление]».
  • В следующем выпадающем списке выберите — «Установить» и нажмите кнопку «Выполнить».

 

Как для документа найти все подчинённые ему документы?

Воспользуемся следующим запросом:

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|	СчетФактураВыданный.Ссылка
|ИЗ
|	Документ.СчетФактураВыданный КАК СчетФактураВыданный
|ГДЕ
|	СчетФактураВыданный.ДокументОснование = &ДокументОснование";
Запрос.УстановитьПараметр("ДокументОснование",	Накладная);	 

РезультатЗапроса = Запрос.Выполнить();

Выборка = РезультатЗапроса.Выбрать(); 

Пока Выборка.Следующий() Цикл 
	СФ = Выборка.Ссылка.ПолучитьОбъект(); 
	СФ.ДокументОснование = "";
	СФ.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

 

Как удалить помеченные на удаление объекты?

  • Откройте базу в режиме 1С:Предприятие | Пункт меню Операции | Удаление помеченных объектов.
  • Появится диалоговое окно с вопросом, что подготовка к удалению помеченных объектов займёт время. Жмём «Да».
  • После выполнения поиска помеченных объектов появится новое окно со списком выбранных объектов. Жмём кнопку «Контроль».
  • Теперь происходит проверка на возможность удаления этого объекта и в следующем окне появляется список объектов, отмеченных красными и зелёными галочками. Объекты с зелёными галочками будут удалены. Жмём кнопку «Удалить».
  • Происходит вывод сообщений об удалённых объектах и в следующем окне появляется список объектов, которые не удалось удалить. Как быть? Что сделать, чтобы удалить и эти объекты?
  • Чтобы удалить все остальные объекты, нужно избавиться от ссылок, которые указывают на них. Эти ссылки показаны в нижнем списке текущего окна. Если дважды щёлкнуть на любой элемент из этого списка, то откроется форма этого объекта. В ней можно заменить помеченный на удаление объект другим объектом. Когда будут заменены все элементы из нижнего списка, помеченный на удаление объект будет удален.

Конечно, очень сложно и долго удалять в ручную все помеченные на удаление объекты. Один из способов сделать это быстро предоставляет внешняя обработка 1С для поиска дублей в справочнике контрагенты и удаления ссылок из документов.

 

Как выбрать группу в элементе диалога «Поле ввода» с типом справочник?

Некоторые пользователи не могут выбрать группу справочника в элементе диалога «Поле ввода» с типом справочник. Они стараются это сделать, дважды нажав на группе левой кнопкой мыши, но происходит только открытие группы справочника.

Чтобы правильно это сделать нужно, нажать на троеточие в элементе диалога «Поле ввода» с типом справочник и в появившемся списке справочника найти кнопку в левом верхнем углу с названием «Выбрать».

Хочу отметить, что кнопка «Выбрать» будет работать для групп, если свойство «ВыборГруппИЭлементов» элемента диалога «Поле ввода», содержит значения «Группы и элементы» (для выбора групп и элементов справочника) или «Группы» (для выбора только групп). Свойство «ВыборГруппИЭлементов» настраивается в Конфигураторе.

Запись опубликована в рубрике Программирование и сопровождение 1с. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Solve : *
12 + 24 =