arefaste/1C_Forums huggingface dataset:
Помогите с ошибкой. Надо из формы ТЧ перенсти в ЗаказКлиента, а на основе Заказас создать реализвцию

Код:

```1c
    Объект.ЗаказКлиента.Товары.Загрузить(Объект.Товары.Выгрузить());
    СозданиеДокументаРеализации = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    СозданиеДокументаРеализации.Заполнить(Объект.ЗаказКлиента);
    СозданиеДокументаРеализации.Записать(РежимЗаписиДокумента.Проведение);
```

```1c
    Ошибка при вызове метода контекста (Загрузить)
    Объект.ЗаказКлиента.Товары.Загрузить(Объект.Товары.Выгрузить());
    по причине:
    Объект недоступен для изменения.
    Объект недоступен для изменения.
```
---
Объект.ЗаказКлиента.Товары.Загрузить(Объект.Товары.Выгрузить());
Объект.ЗаказКлиента это в данном случае ссылка. Сылку изменить нельзя. Нужно получить Объект для начала.

```1c
    Заказ = Объект.ЗаказКлиента.ПолучитьОбъект();
    Заказ.Товары.Загрузить(Объект.Товары.Выгрузить());
```
---
Объект.ЗаказКлиента.Товары.Загрузить(Объект.Товары.Выгрузить());
Объект.ЗаказКлиента это в данном случае ссылка. Сылку изменить нельзя. Нужно получить Объект для начала.

```1c
    Заказ = Объект.ЗаказКлиента.ПолучитьОбъект();
    Заказ.Товары.Загрузить(Объект.Товары.Выгрузить());
```
---
Друг, мне теперь выдает ошибку. Может знаешь с чем это может быть связано?

```1c
    Ошибка при вызове метода контекста (Записать)
    СозданиеДокументаРеализации.Записать(РежимЗаписиДокумента.Проведение);
```
---
так не видно в чем конкретно ошибка. Скорее всего в незаполненных обязательных реквизитах.
---
Объект.ЗаказКлиента это ссылка или объект? Полагаю, что ссылка.
Всем привет!
Есть типовая форма подбора в документы продажи, закупки и т.д. в семействе конфигураций УТ11, КА2.
Обработка называется Обработка.ПодборТоваровВДокументПродажи. Необходимо немного модифицировать поведение.
В конфигурации есть созданный документ, куда подключена данная форма подбора. Но есть один нюанс :)
Когда номенклатура с характеристиками, поведение формы по умолчанию, она проваливается в номенклатуру для выбора характеристики. Мне не нужно чтобы она проваливалась до характеристики, а выбрала непосредственно саму номенклатуру. Не могу понять, где это можно модифицировать? :)
---
Видимо где-то здесь в модуле самой формы обработки:
---
Видимо где-то здесь в модуле самой формы обработки:
---
, Спасибо)
Похоже глаза замылил совсем :(
С помощью поисковика и отладчика для формы документа для скрытия кнопки получился такой код

```1c
    КнопкаНазначения = ЭтотОбъект.КоманднаяПанель.ПодчиненныеЭлементы.Найти("ФормаДокументАИС_АПК_ЗаявлениеНаПолучениеСубсидииНазначитьОтветственного");
    Если ЗначениеЗаполнено(КнопкаНазначения) Тогда
    КнопкаНазначения.Видимость = ПризнакАдминистратор Или ПризнакРуководитель;
    КонецЕсли;
```

Имя кнопки нашел отладчиком.
Теперь отладчиком смотрю отладчиком ЭтотОбъект.КоманднаяПанель.ПодчиненныеЭлементы у формы списка - там ничего нет
я делаю

```1c
    КнопкаНазначения.Видимость = Ложь;
```

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

```1c
    ЭтотОбъект.Элементы.КомандыФормы.ПодчиненныеЭлементы
```

я так понял это фокусы БСП
---
Вставил
```1c
    Для Каждого Кноп Из ЭтотОбъект.КоманднаяПанель.ПодчиненныеЭлементы Цикл
    Сообщить (Кноп.Имя)
    КонецЦикла;
```

Отладчиком посмотрел - ни одной итерации, там как минимум три наших команды на командной панели
---
Ковырялся- ковырялся - вдруг увидел - снята галочка автоопределение на Командную панель формы, а саму кнопку нашел в

```1c
    ЭтотОбъект.Элементы.КомандыФормы.ПодчиненныеЭлементы
```

я так понял это фокусы БСП
---
Если надо убирать кнопки из командной панели каких то списков, таблиц, то смотрим список элементов здесь

Элементы.ТаблицаКоманднаяПанель.ПодчиненныеЭлементы

И делать это надо не в ПриСозданииНаСервере(), а в ПриОткрытии(), потому что после серверного вызова идет загрузка настроек пользователя и прочего и поэтому значения Видимость, Доступность у элементов переписываются.
Здравствуйте, подскажите пожалуйста, как можно лучше оптимизировать такое условие?

КодКонтрагента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЭтотОбъект.Контрагент, "Код");
 Если КодКонтрагента = "000000015" Или КодКонтрагента = "000000008" Или КодКонтрагента = "000000530"
  Или КодКонтрагента = "000000012" Или КодКонтрагента = "000000010" Или КодКонтрагента = "000000009" Или КодКонтрагента = "000000014"
   Или КодКонтрагента = "000000013" Или КодКонтрагента = "000000011" Тогда

Может как то можно собрать в одну переменную все коды и сравнивать?
---
Можно нужные коды добавить в массив, и искать в массиве. Если в массиве есть, тогда делать что нужно. А еще лучше сделать какой то регистр, чтобы код не редактировать каждый раз, когда появляется новый код, а просто добавить его в регистр, и искать там. Если в регистре он есть, то выполнять нужное условие.
---
Доп. сведение/ доп. реквизит для контрагентов. И в зависимости от выбранного варианта обращаться к РС/справочнику.
---
написать запрос с передачей параметром список кодов.
---
Можно нужные коды добавить в массив, и искать в массиве. Если в массиве есть, тогда делать что нужно. А еще лучше сделать какой то регистр, чтобы код не редактировать каждый раз, когда появляется новый код, а просто добавить его в регистр, и искать там. Если в регистре он есть, то выполнять нужное условие.
---
С регистром хорошая идея
---
+ в регистр можно уже добавлять не коды, а самих контрагентов. Или добавить какой то признак в справочник контрагенты, и смотреть уже по нему
---
Доп. сведение/ доп. реквизит для контрагентов. И в зависимости от выбранного варианта обращаться к РС/справочнику.
---
Попробую, спасибо)
---
(3) Только лучше не в Массив, а в Соответствие. Все-таки Массив в первую очередь предназначен для хранения списка, а не для поисков.
Все доброго дня!
Подскажите, можно ли настроить галочку "цена включает НДС", чтобы не выбирать каждый раз в документе?
Я понимаю, что можно использовать соглашение клиентов и соглашения поставщиков, там указывать цены и эту галку.
Но тогда приходится создавать типовые соглашения, соглашения с поставщиками.
Можно эту настройку вывести в реквизиты пользователя или применить целиком к организации?
---
Можно сделать типовое соглашение для покупателей одно на всех, в нем указать на закладке условия продаж валюта цен, цена включает НДС, а тип цен не указывать. Тогда в документе Реализация тип цен не будет заполнено, цену можно указать любую, но цена и сумма будут включать НДС.
---
в справочник Виды Цен можно ввести Вид Цены , указать в какой валюте эта цена и включает ли она НДС. При продаже использовать этот вид цены.
---
Типовое соглашение можно создать одно на всю организацию и в нем поставить этот вид цены.
---
Указывая тип цен - нельзя менять цену вручную.
Соглашения надо делать и на покупателя и на поставщика.
Читал, что раньше это можно было указать в дополнительных настройках пользователя. В новой версии я так понял, это делать нельзя.
---
Можно сделать типовое соглашение для покупателей одно на всех, в нем указать на закладке условия продаж валюта цен, цена включает НДС, а тип цен не указывать. Тогда в документе Реализация тип цен не будет заполнено, цену можно указать любую, но цена и сумма будут включать НДС.
---
Может кто-то встречал расширение, чтобы эта галочка при открытии формы Приобретения и Реализации устанавливалась автоматически?
Привет всем! Возникла небольшая сложность. При обновлении базы выяснилось, что были добавлены предопределенные элементы в план счетов. В окне обновления снял галочку с плана счетов, таким образом новые предопределенные счета от поставщика не перенеслись (1С добавили новый счет 68.01.2), я перенес их вручную. Но после переноса, при сравнении с конфигурацией поставщика элементы отображаются как добавленные, приложил скриншот (я уже выяснил что сравнение идет по идентификаторам). Так вот вопрос, можно ли изменить какой-то обработкой идентификатор предопределенного, чтобы при сравнении с конф. поставщика эти счета не отображались как измененнные?
---
из конфигурации поставщика, либо с приоритетом конфигурации поставщика
---
Нет.
Если удалить и потом добавить это будут разные предопределенные элементы, хоть и называются одинаково. Код перестанет работать так как нужно.
обновитесь по-новой.
---
Нет.
Если удалить и потом добавить это будут разные предопределенные элементы, хоть и называются одинаково. Код перестанет работать так как нужно.
обновитесь по-новой.

Так в коде же система обращается по наименованию. И тогда вопрос какой пункт выбирать при обновлении?
---
из конфигурации поставщика, либо с приоритетом конфигурации поставщика
---
понял, спасибо за ответ!
---
ну и я не удалил старый предопределенный элемент, а не добавил новый, данных по этому счету всё равно не было
Если открыть обработку "Регламентные и фоновые задания", там стоит в колонках "Состояние" и "Дата окончания" не определено, и так во всех заданиях. Флаг включено и расписание есть. Что может быть?
---
Если клиент-серверный вариант, то в свойствах базы в оснастке Администрирования сервера проверьте, снята ли галочка "Блокировка регламентных заданий включена"
---
Если клиент-серверный вариант, то в свойствах базы в оснастке Администрирования сервера проверьте, снята ли галочка "Блокировка регламентных заданий включена"
---
да, клиент-серверный
---
Регламентные задания в копии базы заблокированы по умолчанию, проверьте это основная база или нет, если основная то как писали выше в оснастке Администрирования сервера
---
А если не основная, тогда как исправить?
Есть следующая проблема: Имеется программное заполнение кодов маркировки в документ реализация УТ 11.4 без участия человека, то есть коды маркировки загружаются с помощью обработки, под определенным пользователем. Дело в том что в первый раз когда пытаешься просканировать маркировку в ручном режиме происходит запрос пароля к ЭЦП, далее ставишь галочку сохранять в текущей сессии и он больше не спрашивается.

Получается если перезапустить 1С то в следующий раз пока руками не сделаешь данную операцию, то программно загружать маркировки не получается так как там идет запрос в честный знак и соответственно видимо спрашивается пароль к ЭЦП.

Подскажите где этот пароль спрашивается и как программно заставлять его ставить галочку сохранить пароль на время сессии. Кто то сталкивался?
---
Как вариант - отключить в настройках сканирования проверку марок при оптовых продажах. Тогда вообще в ЧЗ не будут запросы идти (НСИ и администрирование - Настройки интеграции с ИС МП - Настройки сканирования - Контролировать статусы при оптовых продажах, как-то так на память)
---
подсунуть ключ без пароля , у нас так и сделано сигарет за сотню точек , везде штрихкода загружаются обработкой, оператор заходит удаленно ( у нас 6 операторов ) , принимает упд, и обработкой записывает штрихкода в систему , все происходит без участия юзера
---
Как вариант - отключить в настройках сканирования проверку марок при оптовых продажах. Тогда вообще в ЧЗ не будут запросы идти (НСИ и администрирование - Настройки интеграции с ИС МП - Настройки сканирования - Контролировать статусы при оптовых продажах, как-то так на память)
---
Спасибо возможно так и придется поступить.
---
Если Крипто про то можно сохранить пароль, но надо использовать возможно из другой программы (скорее всего браузер)
Здравствуйте. Подскажите, как это возможно сделать?
Запросом получаю вот такие данные:
Т1 = 50
Т2 = 60
Т3 = 20

Далее нужно через СКД получить отчет такого вида:
---
А запросом подобное нет возможности получить? Выбрать данные, поместить во временную таблицу, затем так:

```1c
    ВЫБРАТЬ
    Данные1.Т КАК Т1,
    Данные2.Т КАК Т2,
    Данные1.Количество + Данные2.Количество КАК Количество
    ИЗ
    Данные КАК Данные1,
    Данные КАК Данные2
```

А затем добавить в структуру отчета уже таблицу со строками "Т1" и колонками "Т2". В ячейках по диагонали условным оформление поставить "кресты".
---
Уточните, пожалуйста, в результате запроса у Вас одна строка с тремя колонками?
---
Первая строка у тебя три колонки, а другие строки 4 колонки ?
---
на картинке наверно понятней будет)
---
Нет, 2 колонки: "Т" и "количество"
---
А запросом подобное нет возможности получить? Выбрать данные, поместить во временную таблицу, затем так:

```1c
    ВЫБРАТЬ
    Данные1.Т КАК Т1,
    Данные2.Т КАК Т2,
    Данные1.Количество + Данные2.Количество КАК Количество
    ИЗ
    Данные КАК Данные1,
    Данные КАК Данные2
```

А затем добавить в структуру отчета уже таблицу со строками "Т1" и колонками "Т2". В ячейках по диагонали условным оформление поставить "кресты".
---
Спасибо) я тоже не пойму, как это одним только запросом можно сделать. но, говорят, можно)
---
Так вот же, я показал, как. :-)
---
не сразу сообразил) спасибо, получилось)
Здрасти! На форме обработки, объектом является ЗаказПоставщика. После кое-каких изменений в табличной части нужно пересчитать строки ТЧ.

Выдает ошибку:
Поле объекта не обнаружено (ЦенаВключаетНДС)

Хотя этот реквизит есть в объекте.

Код (ПроцедураНаКлиенте):

```1c
    СтруктураПересчетаСуммы = Новый Структура;
    СтруктураПересчетаСуммы.Вставить("ЦенаВключаетНДС", Объект.ЗаказКлиента.ЦенаВключаетНДС);
    СтруктураДействий = Новый Структура;
    СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
    СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Истина));
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
    ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, КэшированныеЗначения);
```
---
Перенес процедуру на сервер и все заработало. Тема закрыта. Всем спасибо за внимание!! Удачи!
---
Если у объекта не заполнено поле "ЗаказКлиента", то он у пустой ссылки и не может получить поле "ЦенаВключаетНДС"
---
Поле "ЗаказКлиента" по идее заполняется, так как я из него беру табличную часть с товарами и работаю ними в обработке.
---
А что за обработка: в конфигурации, внешняя или в расширении?
---
В расширении. Обработка не стандартная, написанная мною. Служит для оформления продаж по документу ЗаказКлиента. В ней я получаю табличную часть с товарами по строкам из документа. И у меня есть поле отгрузки у каждого товара. Туда я вношу количество, которое возможно отгрузить. Если это количество меньше, чем в заказе, то создается новая строка, где уже другой статус, а с прошлой строки удаляется то количество, которое отгрузилось. И мне надо у этой новой строки пересчитать сумму и тд.
---
Проверьте, что это поле есть в расширении.
---
Перенес процедуру на сервер и все заработало. Тема закрыта. Всем спасибо за внимание!! Удачи!
В управляемом приложении, не типовом , очень долго открывается форма списка справочника Займы.
На форме списка только Динамический список, страница Модули пуста.
Как произвести замер производительности для анализа?
---
```1c
    ОтметкаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах();
    Форма = ПолучитьФорму("Справочник.Займы.ФормаСписка");
    ВремяСозданияФормы = ТекущаяУниверсальнаяДатаВМиллисекундах() - ОтметкаВремени;
    Сообщить("Время создания формы: " + ВремяСозданияФормы);
```
---
запускаешь отладку, там есть замер производительности и вперед и с песней, но как в (2) сказали, походу запрос долгий
---
Вероятно, запрос долго отрабатывает?
---
замерил в консоли - 4 сек
---
Вероятно, много (в ширину) ссылочных полей. И много записей.
---
для замера производительности надо поставить точку останова, а где ее ставить, если нет модулей в форме списка?
---
```1c
    ОтметкаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах();
    Форма = ПолучитьФорму("Справочник.Займы.ФормаСписка");
    ВремяСозданияФормы = ТекущаяУниверсальнаяДатаВМиллисекундах() - ОтметкаВремени;
    Сообщить("Время создания формы: " + ВремяСозданияФормы);
```
---
Спасибо, попробую
---
Вот скриншот выполненной обработки
---
160 милисекунд
---
Попробуйте ОткрытьФорму, вместо ПолучитьФорму.
---
Одно дело - Получить, другое Открыть, 3 заполнить Динамический список, точнее как заполнить(?)
Если у всех - быстро, а у одного пользователя долго - то 100% настроены отборы, и как выше написали - с 10 точками ссылки.
Проще профиль грохнуть и по рукам линейкой, чтоб отборы/настройки такие не делал ;)
---
результат интересный, 160 миллисекунд :)
---
попробовал:
ажно 199 миллисекунд
---
Так а сколько она открывается в обычном режиме работы?
---
так вот: когда запускаю обработку сразу при запуске программы результат:
Время создания формы: 3 557
---
т.е. получается при запуске программы отрабатывают регламентные задания которые и тормозят прогу,
всем спасибо за помощь и советы !!!!
Всем привет, может кто подскажет, есть строка подключения:

DBFConnection = Новый COMОбъект("ADODB.Connection");

DBFConnection.Mode = 1;

DBFConnection.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ ИмяПапки + ";Extended Properties=""DBASE IV;"";");

как у данного провайдера (Microsoft.ACE.OLEDB.12.0) указать кодировку (ANSI, OEM), каким параметром и где? Форумы облазил, не нашёл.
---
а лучше используйте XBase
---
characterset=1251 или cp850 или 866

Похожая проблема на C#
---
DBFConnection.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ ИмяПапки + ";Extended Properties=""DBASE IV;characterset=1251;"";"); то есть строка должна выглядеть так?
---
да
---
а лучше используйте XBase
---
да читаю через XBase всё ок, но весь алгоритм написан через com объект("ADODB.Connection") (как говорится так сложилось исторически), а переписывать так лень, но наверное придётся, потому что characterset=1251; и другие варианты пробовал, всё равно кокозябры считывает.(
---
```1c
    СоединениеADO = Новый COMОбъект("ADODB.Connection"); // Создание COM-объекта
    СоединениеADO.ConnectionTimeOut = 10;
    СоединениеADO.CommandTimeout = 120; // 120 секунд
    СоединениеADO.CursorLocation = 3; // курсоры на стороне клиента
    СоединениеADO.Open(
    "Provider=VFPOLEDB.1;
    |DSN="";
    |SourceType=DBF;
    |Data Source=""+Файл.Путь+"";
    |User ID="";
    |Password="***";
    |Mask Password=False;
    |Extended Properties="";
    |Exclusive=No;
    |Mode=ReadWrite;
    |Collating Sequence=machine;"
    , ", ", -1);

    ТекстЗапроса =
    "SELECT
    |*
    |FROM
    | ["+Файл.ИмяБезРасширения+"] AS "+Файл.ИмяБезРасширения+"Т
    |[#Условие#]";
```

попробуйте так
---
спасибо за помощь, но переделаю лучше чтение через XBase.
На ОФ пишу текстовый файл командами

Файл=Новый ЗаписьТекста(ИмяФайла,Кодировка,Символ(10),Истина);
Файл.ЗаписатьСтроку(Строка,Символ(10));

или Файл.Записать(Строка): Файл.Записать(Символ(10));
Файл.Закрыть();

Под символом 10 я понимаю 0A в шестнадцатеричном виде или LF в таблице ASCII

А у меня упорно вставляется в конце строки 0D 0A , если смотреть в HEX-редакторе.
 Как избавиться от этого 0D ?
 Если разделитель строки не вставлять, то и 0A не вставится, а мне нужно 0A
---
вот так:

```1c
    Файл=Новый ЗаписьТекста(ИмяФайла,Кодировка,Символы.ПС,Истина,Символы.ПС);
```
---
Файл.ЗаписатьСтроку(Строка,Символ(10)); Само использование метода ЗаписатьСтроку() предполагает, что 1С добавит к этой строке разделитель. А то, что она не воспринимает ваш "урезанный" разделитель - вряд ли вы победите платформу.

Попробуйте использовать метод Записать() вместо ЗаписатьСтроку():
Файл.Записать(Строка+Символ(10));
---
Попробуйте использовать метод Записать() вместо ЗаписатьСтроку()

Я написал исходно или Файл.Записать(Строка) я пробовал.

Интересно, что, если вместо символа 10 использовать символ, например, 6 то все прекрасно получается.
А потом, если пытаешься заменить символ 6 на символ 10, то он все равно в одиночку не идет, а всегда в паре с символом 13 перед ним.

Может вызвать какую нибудь внешнюю команду Windows по замене строк или она так же будет вредничать?

Все равно в команде Файл=Новый ЗаписьТекста(ИмяФайла,Кодировка,Символ(10),Истина);
я вынужден писать Символ(10) иначе по-умолчанию будет Символы.ПС
---
вот так:

```1c
    Файл=Новый ЗаписьТекста(ИмяФайла,Кодировка,Символы.ПС,Истина,Символы.ПС);
```
---
Файл=Новый ЗаписьТекста(ИмяФайла,Кодировка,Символы.ПС,Истина,Символы.ПС);

Так это будет ПС т.е. 0D 0A разве нет так ?
В объяснении написано про конвертируемый ПС.
---
Символы.ПС это 0А. То что при сохранении в файл 0А заменяется на 0D 0A описано в СП.
<КонвертируемыйРазделительСтрок> (необязательный)
Тип: Строка.
Определяет разделение строк в файле для конвертации в стандартный перевод строк ПС.
Значение по умолчанию: ВК + ПС.
---
Да, получилось. Невероятно.Спасибо.
---
Пробовал собрать все в одну строку, а потом применить
НовСтрока=СтрЗаменить(СтарСтрока,Символ(13),"");

Все равно это 0D не убирается.
Добрый день коллеги!
Конфигурация ЗУП 3.1, релиз 3.1.16.108
Стоить задача, начислить сотруднице единовременное пособие при рождении ребенка.
По инструкции на ИТС это делается документом «Единовременное пособие за счет ФСС» (см.рис.1)
Только у меня в этом документе присутствует только пособие на погребение (см.рис.2)
Подскажите, может кто сталкивался? Изменилась программа и теперь это делается иным образом? или у меня что-то не настроено.
Заранее Спасибо!
---
да, платит ФСС. В проблеме разобрался. Действительно связано с прямыми выплатами ФСС. Если снять галку по прямым выплатам в учетной политике, то программа дает начислять (см.вложение). Смысл такой, что если есть прямая выплата, то начислять ничего не нужно, нужно подавать заявление в ФСС на прямую выплату.
---
С 2021 года все на "прямых выплатах". Это пособие платит ФСС. Вам нужно создать заявление и реестр - как-то так.
---
Так платит ФСС?
---
да, платит ФСС. В проблеме разобрался. Действительно связано с прямыми выплатами ФСС. Если снять галку по прямым выплатам в учетной политике, то программа дает начислять (см.вложение). Смысл такой, что если есть прямая выплата, то начислять ничего не нужно, нужно подавать заявление в ФСС на прямую выплату.