Архив рубрики: 1С Предприятие 8.3

1с 8 УТП Украины как программно получить текущего пользователя

Имеется ввиду не тот пользователь, который ПользователиИнформационнойБазы.ТекущийПользователь();

А тот, который в справочнике «Пользователи»

В УТП Украины 1.2 это можно сделать, выполнив функцию глЗначениеПеременной(«глТекущийПользователь»);

или же выполнив такие строки кода, что подходит и для других типовых конфигураций 1С:

ТекушийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
ПользовательСсылка = Справочники.Пользователи.НайтиПоКоду(СокрЛП(ТекушийПользователь));

УТП Украины 1.3 не отображается закладка продаж по безналу в отчете о розничных продажах

В документе «Отчет о розничных продажах» будут отображаться вкладки «Оплата платежными картами» и «Оплата банковскими кредитами», если в настройке параметров учета установить соответствующие флажки на закладке «основные»: «Использовать оплату платежными картами» и «Использовать оплату банковскими кредитами» соответственно.

1с 8 в УТ 11 не открываются внешние обработки

В этой конфигурации роль «Полные права» не дает право открывать внешние отчеты и обработки. Поэтому следует ещё и добавить пользователю роль «Интерактивное открытие внешних отчетов и обработок»

После этого при следующем входе в систему пользователь увидит такое вот предупреждение:

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

Как программно определить количество строк и столбцов Excel

Пример делаю на 1с 8, вместе с подключением и отключением 

Попытка
Эксель = Новый COMОбъект(«Excel.Application»);
Исключение
Предупреждение(«MS Excel не установлен на компьютере!»,10);
Возврат;
КонецПопытки;
Состояние(«Подключение к EXCEL»,50);
Книга = Эксель.WorkBooks.Open(Путь);
Лист = Книга.WorkSheets(1);
КолСтрок=Лист.Cells(1,1).SpecialCells(11).Row;
КолКолонок = Лист.Cells(1,1).SpecialCells(11).Column;

………………………

//Шо то робим

………………………

//Сохраняем результаты
Эксель.ActiveWorkbook.Save();
//выходим из Excel
Эксель.Quit();

1с 8 Почему спрашивает «Данные были изменены», если ничего не менялось в форме?

Возможно у кнопки, которую нажимали, или у реквизита, который редактировали, установлен флажок «изменяет данные». Он специально предназначен, чтобы установить модифицированность в «истина», если система сама не может определить, изменяет ли данные элемент.

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

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

1с 8 Почему в СКД во вложенном запросе не видно параметров связи в настройке схемы

Нечасто делаю отчеты на СКД, тем более с использованием вложенных схем. И порой очень раздражает когда делаешь вложенную схему, видишь, что в другом подобном отчете всё есть, а в моем нету полей связи родительского отчета со вложенным.

Нет полей вложенного запроса для связи

Попробуем разобраться. И оставляю себе напоминалочку, так как нервы не железные.

1 Заходим в схему вложенного отчета

рис. Открываем схему вложенного отчета

2 Открываем конструктор запроса

3 Переходим на закладку «Компоновка данных» и переносим стрелками из левой в правую часть те реквизиты, по которым хотим установить связь.

Жмем Ок.

4 Открываем снова настройки связей схемы

Нужные поля для связи появились

5 Но вот в правом значении дает выбирать только элементы

6 Поэтому нажимаем крестик

7 Выбираем «Поле компоновки данных

8 Выбираем нужное поле родителя для связи с вложенным запросом

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

1С 8 Как заполнить значения при добавлении новой строки в табличную часть

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

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

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

Примерно так:

СтандартнаяОбработка = ложь;

нов = Состав.Добавить();

нов.ИсточникДанных = перечисления.СпособПолучения.ИзТабличнойЧасти;

То бишь, сами добавляем строку и устанавливаем параметры, что мне меньше нравится. Я приверженец использования типовых механизмов насколько это возможно.

1C 8 как округлять до заданной числом точности, например 0.01

мОкруглятьДо = 0,01;

Цел(ВыборкаСотрудник.Сумма/мОкруглятьДо)*мОкруглятьДо;//округляет до сотых

мОкруглятьДо = 0,1;

Цел(ВыборкаСотрудник.Сумма/мОкруглятьДо)*мОкруглятьДо;//округляет до десятых

1С 8 неверные конечные остатки в универсальном отчете

Три основных причины неверного конечного остатка в универсальном отчете. Те же причины могут приводить к неверным конечным остаткам и в обычных отчетах, а т.д. СКД.

1 Следует указывать в полях выборки «ПериодСекунда», если в них присутствует регистратор.

2 Немного каламбурно, поэтому смотрите на примеры. Если вы выбираете разименованное значение реквизита объекта, например: ВЫБРАТЬ ТоварыВНТТОстаткиИОбороты.Склад.ВидСклада

тогда нужно выбирать и сам объект отдельным полем, например:

ВЫБРАТЬ 

ТоварыВНТТОстаткиИОбороты.Склад ,

ТоварыВНТТОстаткиИОбороты.Склад.ВидСклада

3 Если вы используете периодичность в запросе, отличную от «Авто», тогда нужно в полях выборки указывать все поля периода: ПериодСекунда,
ПериодМинута,
ПериодДень,
ПериодНеделя,
ПериодМесяц,
ПериодГод

Лучше один раз увидеть, поэтому просмотрите мой коротенький мастер-класс по этой теме на YouTube