arefaste/1C_Forums huggingface dataset:
Здравствуйте. В процедуре ПриЗаписи() документа в модуле объекта нужно записать еще один второй документ. Если во втором документе возникает Отказ, то и первый не запишется.

Попытка Исключение тут не работает . Кстати почему не работает ? Может быть из-за того, что при записи второго устанавливается "Отказ" ?

Как сделать так, чтобы первый документ всегда записался, в независимости от того, был ли отказ при записи второго документа ?
---
Как сделать так, чтобы первый документ всегда записался, в независимости от того, был ли отказ при записи второго документа ?Не создавать второй документ при проведении первого, а создавать его с помощью регламентного задания, например, чуть попозжа. Ну или просто запускать фоновое задание на создание документа при проведении первого - отдельный сеанс.
---
в данном случае более подходит механизм отложенного проведения.
---
Как сделать так, чтобы первый документ всегда записался, в независимости от того, был ли отказ при записи второго документа ?Не создавать второй документ при проведении первого, а создавать его с помощью регламентного задания, например, чуть попозжа. Ну или просто запускать фоновое задание на создание документа при проведении первого - отдельный сеанс.
---
В рамках одного вызова никак.
---
Не совсем так, думаю.
Если во втором случае произошло Исключение - тогда да, транзакция поломана, и первый документ тоже не сохранится.
А вот программный Отказ записи второго документа никак не должен отразиться на записи первого. Если грамотно построить вызовы.
---
Но ведь Отказ = Истина во втором документе в любом случае вызовет исключение. Какие другие программные способы отказать в записи второму документу без вызова исключения?
---
Отказ = Истина это ни разу не исключение. Это просто флаг триггера. При Отказ = Истина транзакция не ломается.
---
Сам по себе код Отказ = Истина исключение не вызовет, но исключение будет вызвано в любом случае по окончании вызова. 1С так легче разрулить oткат(опасное слово) всех изменений=)
---
видимо транзакция срабатывает-с.

если надо записать первый в любом случае, то делайте не в событии ПриЗаписи(), а в событии ПослеЗаписи()

ПриЗаписи() идет проверка, и если надо, вложенные проверки записи множества объектов, и если хотя бы одна не прошла, вся транзакция откатывается.
видимо так...

----------------------------------
если очень хочется ПриЗаписи(), то надо возможность записи второго объекта проверить ДО вызова метода Записать() второго объекта.
---
ПослеЗаписи()что-то я перегнул... отдыхать видимо надо больше....

PS в любом случае, надо копать талмуд на тему транзакций...
когда она "открывается" и когда "закрывается"

вот например:
Модуль объекта ПриЗаписи(Отказ)
Вызывается после записи объекта в базу данных, но до окончания транзакции записи.
Ссылка уже есть и можно записать в базу данных дополнительные данные на основании текущего объекта, используя эту ссылку.
Например, при записи создавать другой документ, содержащий реквизит ссылку на записываемый.
надо понять что будет если последняя строчка не сработает....

кстати, есть встроенная команда ТранзакцияАктивна()
надо проверить что она говорит во время события ПриЗаписи()

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

```1c
    УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
```
---
Вызвали после процедуру?

```1c
    УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
```
---
УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
Нет не вызывал, спасибо, работает!)
Имеется запрос примерного вида

```1c
    Выбрать
    РС.Товар КАК Товар,
    РС.Колво КАК ОборотПоДепартаменту,
    0 КАК ОборотВсего
    ИЗ
    РегистрНакопления.ОборотыТоваров.Обороты() КАК РС
    {ГДЕ
    РС.Подразделение КАК Подразделение}
    Объединить Все
    Выбрать
    РС.Товар,
    0,
    РС.Колво
    ИЗ
    РегистрНакопления.ОборотыТоваров.Обороты() КАК РС
    Объединить Все
```

Для этого запроса выполняется

```1c
    НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("Подразделение");
    ...
```

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

Для тех кто столкнётся с подобной проблемой, я нашел решение.
Нужно в запросе в построителе вместо

```1c
    {ГДЕ РС.Подразделение КАК Подразделение}
```

задавать имя заведомо непересекающееся с именами реквизитов имя, например :

```1c
    {ГДЕ Подразделение КАК Подразделение_Отбор_По_Реквизиту}
```

тогда при добавлении отбора код будет следующего вида:

```1c
    НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("Подразделение_Отбор_По_Реквизиту");
```

это должно помочь построителю с правильностью определения места добавления отбора.
---
Ну а в чем проблема объединить все в подзапрос, ну и фильтр указать для подзапроса целиком, а не для отдельного запроса, соединяемого объединением.
---
Не понимаю смысла писать подобные ответы, кто то просто наматывает счетчик ответов на форме.

Для тех кто столкнётся с подобной проблемой, я нашел решение.
Нужно в запросе в построителе вместо

```1c
    {ГДЕ РС.Подразделение КАК Подразделение}
```

задавать имя заведомо непересекающееся с именами реквизитов имя, например :

```1c
    {ГДЕ Подразделение КАК Подразделение_Отбор_По_Реквизиту}
```

тогда при добавлении отбора код будет следующего вида:

```1c
    НовыйОтбор = ПостроительЗапроса.Отбор.Добавить("Подразделение_Отбор_По_Реквизиту");
```

это должно помочь построителю с правильностью определения места добавления отбора.
Задали задачу,кто поможет решить? Или подскажите где найти материал?1.Создать строковые константы «КаталогЗагрузки» и «ФайлЗагрузки». Создать форму констант для их заполнения из диалога выбора каталога или файла.
2. Реализовать ввод документа «РасходнаяНакладная» на основании элемента справочника «Номенклатура».
3. *Выгрузить из справочника «Номенклатура» первые 10 элементов в файл формата json. Загрузить их обратно с наименованием наоборот (Товар - равоТ).
---
1)Константы
2)Документ на основании
3)json пример 1, json пример 2, json пример 3
---
Создать строковые константы «КаталогЗагрузки» и «ФайлЗагрузки». Даже этого не смогли осилить?
---
Это сделала)
---
Что вы уже сделали и что именно не получилось сделать?
---
Создать строковые константы «КаталогЗагрузки» и «ФайлЗагрузки».Это сделала
2. Реализовать ввод документа «РасходнаяНакладная» на основании элемента справочника «Номенклатура». И это
---
что не получилось сделать в п.3?
---
Я вообще не знаю о чем это)
---
В таком случае, вам уже подсказали в (19)

Получить 10 элементов справочника можно запросом.
---
Всем Большое спасибо,сейчас буду копаться сама)Хоть теперь знаю где
---
Вы же понимаете разницу между "помочь" и "сделать за вас" ?
---
Конечно)
---
https://its.1c.ru/db/v836doc#bookmark:dev:TI000001494
---
Спасибо
---
Сообщение было скрыто модератором.
---
Третий пункт странный.
---
видимо просто проверяют навыки работы со строками, с форматами выгрузок и т.д. Скорее всего из какого-то задачника олимпиадного взяли. Работодатели обычно задают более интересные задачи по типу тех, что на 1с специалисте встречаются.
---
Веселые задачки. Напрямую материалов для их решения нет, надо включать мозг.
---
Ок, подсказываю, где найти материал - "книга Радченко". Ставьте мне плюсик, и закончим на этом.
---
слишком общий ответ, хоть бы главы , страницы ...
---
это стоит бОльше, чем просто "+" :)
---
Alright, Alright, Alright
---
спасибо
---
1)Константы
2)Документ на основании
3)json пример 1, json пример 2, json пример 3
---
(11)Спасибо)
---
Нужно сформировать отчет комиссионера.
Т.к из за двойного артикула в таблице эксель. Таблица в 1с не загружается.
Если в ручную поправить и удалить 1 артикул то с эксель в 1с база загружается.
Из поставленной задачи следует, что бы база загружалась и с 2 мя артикулами.
При установки расширения в 1С:Розница выдает такую ошибку
Как её устранить? Расширение раньше было под такие конфигурации:
1С:Управление торговлей
1С:Комплексная автоматизация
1С:ERP Управление предприятием 2

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

Если же в параметрах НачалоПериода и КонецПериода вместо &ДатаНачала подставить сразу выражение для вычисления

```1c
    ВЫБОР КОГДА &ДатаОтчета = Дата(1,1,1) ТОГДА
    ПроизводствоСервер.РассчитатьНачалоКонецСмены(&ПериодОтчета.ДатаНачала, Значение(Перечисление.ikr_Смены.Смена1), Истина)
    ИНАЧЕ ПроизводствоСервер.РассчитатьНачалоКонецСмены(&ДатаОтчета, &Смена, Истина) КОНЕЦ
```

то выдается ошибка (рис. 2)

Если выражения как на рисунке 3, то выводится верно, но.. в этом случае нет условия по варианту отчета, параметры рассчитываются только для отчета за период.
Как решить эту проблему?
---
В итоге найдено костыльное решение - в параметрах для варианта отчета за смену явно задано значение периода - "Эта неделя". Ошибки больше не выдает, выводит все верно
---
В итоге найдено костыльное решение - в параметрах для варианта отчета за смену явно задано значение периода - "Эта неделя". Ошибки больше не выдает, выводит все верно
---
Ошибка-то где? На большом объеме данных, как думаете, с какой скоростью будет работать сей отчет?
---
Должно быть так.
---
Не понятно как именно съезжают даннные вправо, и почему решили, что проблема в периоде?
---
В разных варантах отчета разные параметры, в одном дата, в другом - период. Я не знаю, в чем ошибка, но когда вариант отчета за смену (с параметром дата), выходит ошибка что не найден параметр ПериодОтчета.ДатаНачала. Т. е. он не видит его. Данные об остатках выводятся в колонке "приход со склада" вместо "начальный остаток"
Доброе утро, светлые головы!

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

1С:Управление торговлей, редакция 11 (релиз 11.4.6.166 и выше);
1С:Комплексная автоматизация, редакция 2 (релиз 2.4.6.162 и выше);
1С:ERP Управление предприятием 2 (релиз 2.4.6.154 и выше).

Как мне сделать\добавить поддержку конфигурацией 1С:Розница
---
Завести то, что не найдено )
---
Загружать расширение в 1С:Розница и исправлять ошибки.
---
Я загружаю в Розницу, через конфигуратор, он выдает ошибки, он мне выдает такие ошибки:

как мне их исправить?
---
Завести то, что не найдено )
---
Но в вашем случае лучше запилить новое расширение ))))
---
почему?
---
Очевидно, потому что в Рознице нет тех объектов, которые есть в других конфигурациях, и которые используются в вашем расширении.
---
Ну как бы ответ очевиден ) Разве в Рознице есть партнеры ? Нет... и т.д. и т.п. )
---
Публиковать чужие отчеты и обработки, это дело не хитрое ) А вот на таких простеньких вопросах вы уже плывете )
Здравствуйте.
Нужно добавить еще одну колонку Цена в динамический список. Не работал раньше с таким. Подскажите, плз, как.
---
В свойствах - Настройка списка открыть открываете конструктор запроса и добавляете поля в запрос. Можно и программно изменить запрос.
---
В свойствах - Настройка списка открыть открываете конструктор запроса и добавляете поля в запрос. Можно и программно изменить запрос.
---
разобрался. спасибо.
---
после того как в запрос что-то добавили, нужно ещё элемент списка на форму вытянуть
---
Это если нужно, но часто бывает и не нужно;)
---
а как тогда в динамический список на форме добавится цена? она просто в запрос попадать начнёт и визуальное отображение формы не изменится
---
да, это понятно) непонятно другое - почему колонка не видна на форме в приложении. в настройке формы ее тоже нет.
---
разобрался - в запрос модуля формы дописать свою колонку
---
Можно в запросе добавить поле
Привет Всем
Помогите пожалуйста, мне нужно удалить диапазон ненужных строк до начала таблицы в листе Excel (офис 2019) ,
накатал код но он криво удаляет строки, видимо при удалении номер строки меняется , грамотно алгоритм прописать у меня ума не хватает вот кусок кода

```1c
    Если Прав(ИмяФайла, 3) = "xls" Или Прав(ИмяФайла, 4) = "xlsx" Тогда
    Excel = Новый COMОбъект("Excel.Application");
    Workbook = Excel.Workbooks.Open(ПолноеИмяФайла);
    Лист = Workbook.Sheets(1);
    ВсегоКолонок = Лист.Cells(1,1).SpecialCells(11).Column;
    ВсегоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;

    ОбластьПоиска = Лист.Cells;
    НачалоЛиста =Лист.Cells(1, 1);
    ОбластьПараметр = ОбластьПоиска.Find("Наименование товаров (работ, услуг)", НачалоЛиста);

    Если ОбластьПараметр <> неопределено Тогда
    КонецОбласти = ОбластьПараметр.Row;
    КонецЕсли;

    Для НомерСтроки = 1 по КонецОбласти Цикл
    Лист.Rows(НомерСтроки).Delete();
    КонецЦикла;

    Workbook.SaveAs(ПолноеИмяФайла);
    Excel.Application.Quit();
```

подскажите как грамотно прописать алгоритм?
---
А зачем в коде 1С удалять что-то в Эксель? Есть же макросы на VB в Экселе. Начните запись, удалите нужные строки, закончите запись, посмотрите получившийся код, поменяйте, как Вам надо, вытащите в экселе кнопку запуска этого макроса на панель - все.
---
А если в Лист.Rows(НомерСтроки).Delete(); не НомерСтроки передавать, а 1? Либо выбрать область (как делать точно не помню, что-то там через select) и его удалить.
---
А зачем в коде 1С удалять что-то в Эксель? Есть же макросы на VB в Экселе. Начните запись, удалите нужные строки, закончите запись, посмотрите получившийся код, поменяйте, как Вам надо, вытащите в экселе кнопку запуска этого макроса на панель - все.
Доброе утро, кодировщики 1С!

В 8.2 (обычные формы) у меня есть таблица ТабличноеПоле с колонками Статус (перечисление) и ДатаСтатуса (дата). Мне нужно чтобы при заполнении поля колонки Статус автоматически проставлялась текущая дата в поле колонки ДатаСтатуса. Вот такой код я составил, но ДатаСтатуса автоматически не выставляется и ошибок нет... Помогите, пожалуйста.

```1c
    Процедура ТабличноеПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки.Статус <> Неопределено Тогда
    ДанныеСтроки.ДатаСтатуса = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");
    КонецЕсли;
    КонецПроцедуры
```
---
Колонка "ДатаСтатуса" имеет ТипЗначения "Дата". А вы пытаетесь присвоить ей строковое значение - или для чего, по-вашему, предназначена функция Формат()?

Вот так надо:

```1c
    ДанныеСтроки.ДатаСтатуса = ТекущаяДата();
```
---
ДанныеСтроки.ДатаСтатусаЭто точно строка? Может таки дата?
---
Колонка "ДатаСтатуса" имеет ТипЗначения "Дата".
---
Колонка "ДатаСтатуса" имеет ТипЗначения "Дата". А вы пытаетесь присвоить ей строковое значение - или для чего, по-вашему, предназначена функция Формат()?

Вот так надо:

```1c
    ДанныеСтроки.ДатаСтатуса = ТекущаяДата();
```
---
Да, теперь понял в чем промахнулся. Спасибо! Теперь даты ставятся, но почему-то в строках где не заполнена колонка "Статус" - видимо не срабатывает условие:

Если ДанныеСтроки.Статус <> Неопределено Тогда
---
почему-то в строках где не заполнена колонка "Статус" - видимо не срабатывает условие Отладчик в помощь - проверяйте, чему равно ДанныеСтроки.Статус
---
Сделал так: Если ЗначениеЗаполнено(ДанныеСтроки.Статус) Тогда
Версия платформы 8.3.16.1814

Пытаюсь написать обработку получения карты, в макете вставляю код, на форме расположил Поле HTML документ,но в это поле не выводится ничего.
Пытаюсь получить просто страницу по адресу например гугла или яндекса, при использовании https получаю ошибку SSL connect error. При использовании http прогружается.

Прописывал в файлике inetcfg.xml у себя настройки прокси сервера и устанавливал ntlm = false, добавлял сертификаты антивируса и самого сайта в файл cacert.pem.

Я так понимаю что проблема вся в том, что за пределы прокси сервера не получается выйти при использовании https, собственно как заставить показывать поле htmlДокумент с авторизацией на прокси сервере, не используя HTTPсоединение? Может быть есть какие-нибудь альтернативные варианты использования API карт.

```1c
    Макет=РеквизитФормывЗначение("Объект").ПолучитьМакет("карта");
    Объект.Карта=Макет.ПолучитьТекст();
```

```1c
    <!DO CTYPE html>
    <ht ml xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>TEST</title>
    <met a http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <sc ript src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard⟨=ru-RU" type="text/javascript"></sc ript>
    <sc ript type="text/javascript">
    ymaps.ready(init);
    var myMap,
    myPlacemark;

    function init(){
    myMap = new ymaps.Map ("map", {
    center: [55.61, 32.41],
    zoom: 16
    });

    myPlacemark = new ymaps.Placemark([55.61, 32.41], {
    hintContent: 'Test',
    balloonContent: 'TEST'
    });

    myMap.geoObjects.add(myPlacemark);
    }
    </sc ript>
    </head>

    <body>
    <div id="map" style="width: 600px; height: 400px"></div>
    </body>

    </html>
```
---
Решено.
У кого установлен Kaspersky смотрите правила в модуле веб защиты, возможно поможет. Для проверки замешен ли в ошибке SSL connect error, антивирус, можете отключить его временно. Добавление сертификатов не поможет.
---
Решено.
У кого установлен Kaspersky смотрите правила в модуле веб защиты, возможно поможет. Для проверки замешен ли в ошибке SSL connect error, антивирус, можете отключить его временно. Добавление сертификатов не поможет.