arefaste/1C_Forums huggingface dataset:
Доброго времени суток. Вопрос по бонусной системе, возможно ли в типовом решении сделать следующее:

С 1 покупки покупателю начисляется 3% от суммы покупки(бонусы начисляются с отсрочкой 14 дней)
За весь период сумма на которую покупать делает покупки копится и отсюда вычисляется процент начисления бонусов
От 10000 - 4%
От 15000 - 5%
От 20000 - 6%
От 25000 - 7%
От 30000 - 8%
От 35000 - 9%
От 40000 - 10%
10% максимальный процент на который покупателю начисляются бонусы
---
будет группа вытеснения, в ней будут идти скидки в зависимости от накоплений по карте.
Сумма накомплений БОЛЬШЕ той которую укажите и будет действовать скидка или начисление бонусов либо и то и другое, смотря как сделаете
---
конечно можно, настраивал подобное еще в 2.2
---
если можно подробней, как правильно диапазоны задать?
---
будет группа вытеснения, в ней будут идти скидки в зависимости от накоплений по карте.
Сумма накомплений БОЛЬШЕ той которую укажите и будет действовать скидка или начисление бонусов либо и то и другое, смотря как сделаете
Всем доброго времени суток!
Появилась задача ежедневного запуска и открытия на Клиенте внешней либо внутренней формы обработки в определенное время, например в 12-00, очень надеялся реализовать через регламентные процедуры, но там увы возможен только серверный вариант (БП 3.0.115.19) Существует ли какая-либо возможность запуска штатными методами без батников и скриптов? Программа работает постоянно и какие-либо ее перезапуски крайне нежелательны
---
Расширением в модуль сеанса добавляете ПодключитьОбработчикОжидания(), в нем процедура клиентского общего модуля, которая проверяет время и открывает при необходимости форму
---
Чем не устраивают батники и скрипты?
---
"Программа работает постоянно и какие-либо ее перезапуски крайне нежелательны", вот если бы была возможность открывать скриптом обработку не закрывая программу
---
Открыли новый сеанс, обработали и закрыли сеанс - так тоже нельзя?
---
Открыли новый сеанс, обработали и закрыли сеанс - так тоже нельзя?

Тоже не желательно, для кучи подключено торговое оборудование и при параллельном запуске начнется путаница с его адресами (
---
Ну, как вариант - повесить обработчик ожидания на какую-нибудь форму на главной странице.
---
Расширением в модуль сеанса добавляете ПодключитьОбработчикОжидания(), в нем процедура клиентского общего модуля, которая проверяет время и открывает при необходимости форму
---
модуль сеанса А модуль сеанса разве не серверная?
---
Пардон, модуль приложения конечно же, в ПриНачалеРаботыСистемы()
---
Ну, как вариант - повесить обработчик ожидания на какую-нибудь форму на главной странице.
  этот вариант я тоже рассматривал, обработчик должен проверять текущее время и не очень надежно назначать на форме - пользователи каких только форм не по открывают/закрывают за смену, поэтому мучительно хочется пихнуть все запуски в регламентные )
---
стем А вот такой вариант я почему-то еще не рассматривал, пойду пробовать)
В управляемых формах хочу отфильтровать табличную часть:

Отбор = Новый Структура;
Отбор.Вставить("Код", "1");
// Задаем фиксированную структуру отбора для таблицы формы

ТекЭлем.ОтборСтрок = Новый ФиксированнаяСтруктура(Отбор);

Режим фильтрации идет по вхождению и ищет все: "1","11","111","1111","15"

как сделать по точному соответствию?
---
Отбор по строке выполняется по вхождению. Это написано в СП.

Можно добавить в ТЧ булевый реквизит формы "НужнаяСтрока", перед отбором в цикле обходить ТЧ и устанавливать реквизиту Истина или Ложь в зависимости от значений в строке. Далее устанавливать отбор по колонке НужнаяСтрока.
Потребуется перезаполнять значения колонки в процедуре ПослеЗаписиНаСервере.
---
Отбор по строке выполняется по вхождению. Это написано в СП.

Можно добавить в ТЧ булевый реквизит формы "НужнаяСтрока", перед отбором в цикле обходить ТЧ и устанавливать реквизиту Истина или Ложь в зависимости от значений в строке. Далее устанавливать отбор по колонке НужнаяСтрока.
Потребуется перезаполнять значения колонки в процедуре ПослеЗаписиНаСервере.
---
спасибо за способ.
Почему 1с например у свойства отборстрок не сделать метод сравнения, не понимаю
Добрый день коллеги. Разрабатываю отчет на СКД. Столкнулся с вопросом который не получилось самостоятельно осилить. Прошу помощи.

Для каждого подразделения необходимо вычислить значение в формуле которого в том числе используется итоговая запись по этой же колонке.
Вычисление происходит по формуле ( см рисунок) B2 = B50 * D2 / H50,
                                                                                      B3 = B50 * D3 / H50 и.т.д.

Как проще всего решить задачу?
---
так это зацикливание какое-то. как ячейка может рассчитаться от итога, если этот итог сначала должен быть получен по этой ячейке, а значение должно быть рассчитано от итога, который должен быть рассчитан от ячейки ....
полагаю должна быть колонка с первичными значениями, а вот вторая - это уже некая средневзвешенная оценка по итогу первой колонки
и тогда можно использовать функции вычислитьпогруппировке или аналогичные
---
Коллеги. Вопрос вдогонку. В вычисляемых полях H50 нельзя использовать?
При использовании
```1c
    (&Медрасходники * КоличествоУслугОборот) / Сумма(КоличествоУслугОборот)
```
 почему /Сумма(КоличествоУслугОборот) - не вычисляется корректно?
---
так это зацикливание какое-то. как ячейка может рассчитаться от итога, если этот итог сначала должен быть получен по этой ячейке, а значение должно быть рассчитано от итога, который должен быть рассчитан от ячейки ....
полагаю должна быть колонка с первичными значениями, а вот вторая - это уже некая средневзвешенная оценка по итогу первой колонки
и тогда можно использовать функции вычислитьпогруппировке или аналогичные
---
вот тут можно посмотреть https://infostart.ru/1c/articles/1101676/ про агрегатные функции
---
У меня было что то похожее и проблему решил так.
В запросе я получал сумму (произведение) всех итоговых значений. То есть и вычисления производил на стороне запроса СКД. Группировал это все со строковыми значениями и выводил.
Если будет не понятно могу пример поискать.
---
В том то и дело что для получения Итоговой записи - B50, необходимо посчитать детальные записи B2 - B..., для расчета которых нужна итоговая сумма из B50.
---
Попробуйте детальные записи в запросе посчитать а не итогами в таблице.
Добрый день коллеги.
Задача следующая :
Для расчета некоторых данных в внешнем отчете необходимо использовать числовое значение введенное пользователем перед его формированием (в базе 1с этих данных нет и сохранять их нет необходимости).

Какие варианты приходят на ум:

1) Максимально костыльный способ. Создать в базе константу или РС. Вносим эти данные, выбираем запросом и через вычисляемые поля
обрабатываем. Не подходит в моем случае из-за необходимости изменять конфигурацию.

2) Добавить числовой реквизит на форму отчета. Заполнение перед формированием отчета обязательно. Интуитивно понимаю что набором данных нужно передать в СКД, но как сделать это не знаю.

3) Если иной есть способ, открыт для предложений.
---
А почему просто нельзя использовать числовой параметр?
---
Если в СКД создаю числовой параметр он недоступен в вычисляемых полях.Чёй-та? Все доступно в вычисляемых полях. Параметр нужно писать с амперсандом (&).
---
Можешь сделать так, как советую другие пользователи текущей ветки. Тогда не нужно создавать форму. Пользователь укажет значение в настройках отчета перед формированием.

Код который выше скинул это если у тебя будет форма и на форме будет реквизит. В процедуре перед формированием отчета ты заполнишь параметр этим реквизитом.
---
3) Параметры
---
Может так?:
```1c
    ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("ЗначениеОтПользователя");
    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
    ПараметрСКД.Значение = 1;
    ПараметрСКД.Использование = Истина;
```

И в параметрах СКД внешнего отчета создать этот параметр. Далее параметр используешь в запросе
---
```1c
    ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("ЗначениеОтПользователя");
    ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
    ПараметрСКД.Значение = 1;
    ПараметрСКД.Использование = Истина;
```

Форму и реквизит на форме создавать не нужно? В модуле объекта код писать? Дополнительный набор данных не нужно создавать?

И в параметрах СКД внешнего отчета создать этот параметр. Далее параметр используешь в запросе

Какой тип параметра выбирать? Почему-то недоступен параметр в вычисляемых полях.
---
Можешь сделать так, как советую другие пользователи текущей ветки. Тогда не нужно создавать форму. Пользователь укажет значение в настройках отчета перед формированием.

Код который выше скинул это если у тебя будет форма и на форме будет реквизит. В процедуре перед формированием отчета ты заполнишь параметр этим реквизитом.
---
А почему просто нельзя использовать числовой параметр?
---
Наверняка можно раз все про них пишут. Не знаю как. В запросе создать пустой параметр или сразу в СКД? Если в СКД создаю числовой параметр он недоступен в вычисляемых полях.
---
Если в СКД создаю числовой параметр он недоступен в вычисляемых полях.Чёй-та? Все доступно в вычисляемых полях. Параметр нужно писать с амперсандом (&).
Добрый день! Подскажите как в макете печатной формы присвоить области колонок только в области строки, а не всего табличного документа. Для примера смотрел макет печатной формы документа Установки цен номенклатуры конфигурации 1С Розница 2.3. В данном макете в области строки "Заголовок" нет областей колонок, но если смотреть область строки "ШапкаТаблицы" (или область строки "Строка"), то там заданы области колонок. Как мне в своем макете сделать так же? Пробовал задать область колонок, но они задаются на все области строк.
---
все как я говорил. Выделяю вторую область. Начинаю изменять колонку. На вопрос, создать новое форматирование, отвечаю: да. Потом задаю наименвоание области сверху. Все также отображается. Пример приложил
---
а разве они не добавляются, когда выделенную область начинаешь по-другому форматировать?
---
а разве они не добавляются, когда выделенную область начинаешь по-другому форматировать?
---
вот что получилось( Области колонок нужны только в области строки ШапкаТаблицы, а они попадают еще и в область строки "Заголовок"
---
Вот тут например можете сделать:
ОбластьЗаголовокТовара = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаТовар");
И тогда будет не весь табличный документ, а только пересечение этих областей.
---
Мне интересно еще, как это реализовала Фирма 1С в своем макете)
---
все как я говорил. Выделяю вторую область. Начинаю изменять колонку. На вопрос, создать новое форматирование, отвечаю: да. Потом задаю наименвоание области сверху. Все также отображается. Пример приложил
---
Спасибо
---
не за что )
---
В любой типовой печатной форме посмотрите - в заказе, в реализации. Там полно примеров, вот например кусок кода из типовой УТ:
ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|НомерСтроки");
  ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|КолонкаКодов");
  ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Товар" + СуффиксОбластиКолонки);
  ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы" + СуффиксОбластиСтроки + "|Данные" + СуффиксОбластиКолонки);
---
Ну так вам нужно брать пересечение вертикальной и горизонтальной области.
---
Подскажи пжл как это сделать)
подскажите пожалуйста как оставить только одну форму списка? я отбор программно делаю и в итоге в документе открывается форма с отбором и форма без него

```1c
    Процедура ЗаказыОбъектОСНачалоВыбора(Элемент, СтандартнаяОбработка)

    ФормаПодбора = Справочники.ОсновныеСредства.ПолучитьФормуВыбора("ФормаСписка");
    ФормаПодбора.РежимВыбора = Истина;
    ФормаПодбора.ЗакрыватьПриВыборе = Истина;
    ФормаПодбора.МножественныйВыбор = Истина;
    ФормаПодбора.ВладелецФормы = Элемент;

    ФормаПодбора.Отбор.Код.ВидСравнения = ВидСравнения.Равно;
    ФормаПодбора.Отбор.Код.Значение = "00007";
    ФормаПодбора.Отбор.Код.Использование = Истина;
    ФормаПодбора.Открыть();

    КонецПроцедуры
```
---
Попробуйте СтандартнаяОбработка = Ложь
---
Попробуйте СтандартнаяОбработка = Ложь
---
спасибо тебе большое!
Здравствуйте. Сделал бота, по публикации https://infostart.ru/1c/articles/962753/ . Хочу его законнектить к базе, чтобы обрабатывались сообщения, которые ему отправляют. На сайте, где создавал бота, в графу Messaging endpoint необходимо вводить урл с протоколом https, иначе ошибка. База, опубликованная через апач, имеет протокол http. По крайней мере по этому протоколу к базе подключиться можно, по https ошибка, что страница не обнаружена. Http сервис с методом post. Подскажите, пожалуйста, как правильно настроить апач, чтоб публиковать сервис с протоколом https, как проверить работу сервиса "http://localhost/имяпубликации/hs/имясервиса", как законнектить скайп с http сервисом 1с, и где обо всем этом можно найти подробную информацию? Читал несколько статей на форуме, но нужной мне информации найти не смог.
---
https://localhost/имяпубликации/hs/ +сертификаты нужно получить для сайта
---
https://localhost/имяпубликации/hs/ +сертификаты нужно получить для сайта
---
+сертификаты нужно получить для сайта подскажите, пожалуйста, тут нормальный способ описан ? https://habr.com/ru/post/667158/
---
Let’s Encrypt? Да, но только сроки у него короткие 3 месяца если не путаю.
---
Да, все верно, три месяца, и потом надо по новой создавать. Но мне просто потестировать для начала, а потом уже что нибудь другое поищу. Спасибо за ответы.
При открытии формы списка справочника Полные роли в 1С Документооборот 2.1.31.5 через функции для технического исполнителя отображается список наименований элементов. Если во внешнюю обработку добавить реквизит с типом справочник Полные роли и отобразить его на форме для выбора, то открывающаяся форма выбора содержит только код элемента. Как при выборе элемента на форме открывать форму выбора с наименованием элементов?
---
Ну вот собственно и ответ. Поскольку формы выбора нет, то система создает ее по умолчанию. А по умолчанию там два поля - код и наименование. Раз нет наименования, то и поля на форме не будет. А наименования в форме списка я уверен получены программно при создании на сервере.

Выход я вижу только один, это создать свою форму выбора.
---
"Еще/Изменить форму" пробовали?
---
Да, там только Код
---
А в форме выбора конфигурации ссылка есть?
---
Нет формы выбора
---
А в остальном работает нормально? Выбор элемента работает?
---
Да, после выбора уже отображается не код, а наименование
---
У справочника есть стандартный реквизит "Наименование"?
---
Наименования нет
---
Ну вот собственно и ответ. Поскольку формы выбора нет, то система создает ее по умолчанию. А по умолчанию там два поля - код и наименование. Раз нет наименования, то и поля на форме не будет. А наименования в форме списка я уверен получены программно при создании на сервере.

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

какой член и какой группы где их искать?
---
тоже словил такую ошибку, некоторое время тупил. Оказалось, проблема в том, что дрова штриха стояли 64-разрядные, а 1с была 32-разрядная.
Поставили до меня, умельцы. Поэтому снес 64-разрядные, поставил 32-разрядные и все вошло, как по маслу.
---
тоже словил такую ошибку, некоторое время тупил. Оказалось, проблема в том, что дрова штриха стояли 64-разрядные, а 1с была 32-разрядная.
Поставили до меня, умельцы. Поэтому снес 64-разрядные, поставил 32-разрядные и все вошло, как по маслу.
---
Ошибка в драйвере/прошивке кассы.
---
Зарегистрируйте библиотеку dll драйвера
---
Чек без скидок?
http://forum.shtrih-m.ru/viewtopic.php?f=1&t=30816
---
Добрый день! Такая же ошибка! помогите!!!! кто как решил?
---
После установки драйвера ККМ скопируйте все .dll и .xml из каталога установки драйвера в каталог 1С. Возможно доступа нет к папке с дровами.
---
проверьте соответствие версий драйверов
В обычной форме (рис. 1) требуется, чтобы органы управления, начиная с "ИнформацияОПрограмме" и ниже располагались бы в самом низу формы независимо от её размера (как в Конфигураторе на Рис. 1).

Как я не ставил привязки - получается либо ActiveX имеет нормальный размер (с запасом места для названых органов управления), но сами контролы перечёркивают его посередине, либо же они располагаются внизу ActiveX, но тогда сам ActiveX не растягивается на всю форму - внизу остаётся много свободного места (Рис. 2)

Что я делаю не так?

Конфигурация прилагается, общая форма "OTT_Player".

(По поводу 8.2 - под 8.3 ActiveX не работает)
---
Нижние элементы привязывай к низу формы, а низ ActiveX'а к верху информации о программе. В твоем файлике натыкал, для примера. Но проверял в конфигураторе только - может вживую что то подправить надо будет.
---
Нижние элементы привязывай к низу формы, а низ ActiveX'а к верху информации о программе. В твоем файлике натыкал, для примера. Но проверял в конфигураторе только - может вживую что то подправить надо будет.
---
Спасибо, всё работает!
Всем добрый день.
Мне нужно в модуле формы выяснить, есть ли у текущего пользователя нужная роль. Как это сделать? Пытался воспользоваться функцией РольДоступна(), но в контексте модуля формы её не видно.
Направьте пж.
---
Перенеси проверку РольДоступна() НаСервер
---
Почитать СП не судьба? В каком контексте доступна функция РольДоступна()?
---
Видел, в глобальном, но что-то не могу найти как её вызвать. Не подскажите? Заранее, сп.
---
Не подскажите? ПодскажЕте.
Не подскажу, пока не прочитаешь СП по данной функции. Тем более, что тебе уже даже скопировали текст оттуда.
---
Перенеси проверку РольДоступна() НаСервер
---
Сп, только сейчас заметил, что не доступна на клиенте)
---
А как же Видел, в глобальном,
Чушь сморозил?
Добрый день, такой вопрос.
У табличного документа есть кнопка "Редактировать", при нажатии - она остается "Нажатой"( пока включено это свойство)

Как можно свою кнопку сделать такой же ?
---
Можно поместить кнопку в группу со свойством Вид = КоманднаяПанель и размещать такую кнопку где угодно.
---
Блин, да. Вы были правы )
"Пометка" - свойство
Пометка работает только для кнопок в командной панели
Спасибо!
---
У кнопки есть свойство "Отметка" - это оно.
---
Что то не нахожу...
Есть свойство "Пометка" - но это по моему другое, не работает
---
Блин, да. Вы были правы )
"Пометка" - свойство
Пометка работает только для кнопок в командной панели
Спасибо!
---
Можно поместить кнопку в группу со свойством Вид = КоманднаяПанель и размещать такую кнопку где угодно.
---
Сообщение было скрыто модератором.
Добрый день! Подскажите, как программно завершить работу системы в тонком клиенте?
Создал новую обработку, хочу из её формы закрыть систему.
В толстом клиенте команды ЗавершитьРаботуСистемы(Ложь) и ПрекратитьРаботуСистемы() работают нормально, база закрывается, а в тонком клиенте выскакивает ошибка, пытается искать процедуры/функции с этими названиями, хотя в букваре сказано, что эти команды доступны в тонком.
Как заставить их работать в тонком клиенте?
---
Как заставить их работать в тонком клиенте? Может надо их вызывать все-таки на клиенте, а не на сервере?
Или ты реально хочешь, чтобы какой-то непонятный сервер завершил сеанс на твоем компьютере?
---
Как заставить их работать в тонком клиенте? Может надо их вызывать все-таки на клиенте, а не на сервере?
Или ты реально хочешь, чтобы какой-то непонятный сервер завершил сеанс на твоем компьютере?
---
Да, действительно. Спасибо!
---
Закрой тему, как решенную, отметив правильный ответ.
Привет всем.
Что то я застопорился.
Создал простой запрос на поиск чека:

```1c
    &НаКлиенте
    Процедура Команда1(Команда)
    СоздатьФайлСОстатками("ИВ000007486");
    КонецПроцедуры

    Функция СоздатьФайлСОстатками(НомерДок) Экспорт
    ОбъектДок = ПолучитьДок(НомерДок);
    //бла бла бла
    //.......
    //.......
    КонецФункции;

    Функция ПолучитьДок(НомерДок)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЧекККМ.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ЧекККМ КАК ЧекККМ
    |ГДЕ
    | ЧекККМ.Номер = &НомерДок";

    Запрос.УстановитьПараметр("НомерДок", НомерДок);

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Возврат ВыборкаДетальныеЗаписи.Ссылка;
    КонецЦикла;

    Сообщить("Чек не найден");

    КонецФункции
```

а он мне ругается на неоднозначное поле "Номер"
я не пойму что не так, вроде все как обычно а получаю ошибку:
по причине:
{(6, 2)}: Неоднозначное поле "ЧекККМ.Номер"
<<?>>ЧекККМ.Номер = &НомерДок
---
Сделайте так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Чеки.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ЧекККМ КАК Чеки
    |ГДЕ
    | Чеки.Номер = &НомерДок";
```
---
Сделайте так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Чеки.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ЧекККМ КАК Чеки
    |ГДЕ
    | Чеки.Номер = &НомерДок";
```
---
Если запрос достаточно простой можно вообще без алиасов руками написать (а не в консоли)

```1c
    ВЫБРАТЬ Ссылка ИЗ Документ.ЧекККМ ГДЕ Номер = &НомерДок
```
---
видимо в прошлом году есть такой же чек с тем же номером, а даты разные
---
Видимо, не нужно в запросах давать алиасы таблицам = именам объектов метаданных.
---
И что? Проблема не в этом. Выполнил запрос ТС на своей УТ - выдало несколько чеков с одинаковым номером. Видимо что-то изменили в метаданных. Предположение в Документ ЧекККМ добавили реквизит ЧекККМ.(но это не точно, нужно реквизиты документа смотреть)
---
И что? Проблема не в этом
Т.е. замена алиаса таблицы в запросе на заведомо отличающийся от имени объекта метаданных решает проблему, но проблема не в этом? Хорошо, так и запишем.....
---
Обратите внимание, я отвечал на сообщение под номером 3. С вами я полностью согласен. (Когда писал сообщение, страница была не обновлена и вашего сообщения не было)
---
Есть в какой-то из выбираемых таблиц поле "ЧекККМ", поэтому так и пишет
---
Попробуйте вот так.. ЧекККМ.Ссылка КАК ЧекСсылка..или как в 1
---
еще как вариант (и его все рекомендуют, так как он более оптимальный)
это использовать встроенную функцию поиска документа по номеру!!!

лкЧек = Документы.ЧекККМ.НайтиПоНомеру(НомерЧека,ТекущаяДата());