Задать вопрос
  • Проблема со входом в 1с при использовании VLAN?

    @Dementor
    программист, архитектор, аналитик
    В настройках подключения клиента 1С пробовал указывать как имя сервера (srv1), так и IP-адрес (192.168.1.99) с указанием порта менеджера кластера (1541).
    Тестирование подключения:
    С компьютера в VLAN 10 успешно проходит ping 192.168.1.99.
    С компьютера в VLAN 10 успешно устанавливается telnet 192.168.1.99 1541.


    Важны настройки самого кластера 1С. Если там указан не адрес "192.168.1.99", а имя "srv1", то именно его и нужно пинговать. Это особенность работы кластера. по адресу в 1С клиенте вы стучитесь на службу агента, который смотрит настройки своего кластера и сообщает вам адрес менеджера, чтобы уже он сообщил адрес свободного rphost. Если хоть какой-то из адресов будет недоступен, то соединение не установится.
    Ответ написан
    3 комментария
  • Как взять значение из регистра сведений в пользовательское поле 1С?

    @Dementor
    программист, архитектор, аналитик
    хочу в готовом отчёте создать пользовательское поле в которое хочу подтянуть закупочную цену

    Не получится! В пользовательских полях можно оперировать лишь данными из источников данных, которые уже описаны для отчета. А понятия "пользовательские источники данных" не существует.

    Если вы хотите в складской ведомости видеть остатки в суммовом выражении, то вам нужно привлечь программиста для доработки или создания нового отчета.
    Ответ написан
    Комментировать
  • Как искать по ссылке в запросе 1с?

    @Dementor
    программист, архитектор, аналитик
    Как искать по ссылке в запросе 1с?

    В листинге все верно - именно так и нужно искать по единичной ссылке:
    ГДЕ ОтчетОРозничныхПродажах.Ссылка = &Ссылка

    Если бы нужно было найти по нескольким ссылкам, то это выглядит так:
    ГДЕ ОтчетОРозничныхПродажах.Ссылка В (&СписокСсылок)

    я понимаю, что неправильно задал инициализацию переменной Ссылка,

    Еще как! Вы в переменную вместо данных типа ДокументСсылка.ОтчетОРозничныхПродажах поместили данные с типом ДокументМенеджер.ОтчетОРозничныхПродажах

    Ссылку можно получить как входной параметр вашей функции, из элемента на форме или поиском в базе по уникальным атрибутам, которыми могут быть Номер+Дата или УникальныйИдентификатор. поиск выполнять через соответствующие методы Менеджера, который вы уже научились получать.
    Ответ написан
    1 комментарий
  • Как обойти ошибку создания уникального индекса?

    @Dementor
    программист, архитектор, аналитик
    Можно ли со стороны SQL это решить ? Например, с помощью скрипта SQL который бы отслеживал запись и при возникновении ошибки переименовал объект допустим ?

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

    Ошибка осталась, хотя по всем объектам дубли больше не найдены.

    Я бы на ваш месте не угадывал, а проверил бы поля из индекса IDD для таблицы dbo.SC31 - если скуль ругается, то вы точно что-то пропустили. Сделайте SELECT с GROUP BY этим полям и HAVING COUNT(*) > 1
    Ответ написан
    Комментировать
  • Как удалить базу из 1с кластера?

    @Dementor
    программист, архитектор, аналитик
    Суть проблемы при работе в консоли 1с (mmc), она начинает виснуть и закрываться.

    Ситуация странная. Консоль должна просто считывать и показывать данные из подключенных серверов. С подобным еще не сталкивался - бывало только, что консоль выдавал ошибку и не хотела работать - это лечилось перерегистрацией консоли (radmin.dll)

    Если не получается отредактировать список баз с помощью консоли, то это можно сделать еще тремя путями:

    1) явным редактированием настроечных файлов кластера (как написано в вопросе)

    2) по COM-соединению через "V83.COMConnector" можно получить агент нужного кластера и програмно отредактировать список баз (https://its.1c.ru/db/v8325doc/bookmark/cs/TI000000256)

    3) установить сервер RAS и далее три подварианта:
    3.1) подключится к нему с помощью утилиты RAC и отредактировать список из командной строки
    3.2) подключится с помощью библиотеки irac из oscript
    3.3) подключится из кода 1С с помощью объекта АдминистрированиеСервера

    реестр хранить еще в системных база SQL

    В системных базах SQL хранятся записи о базах этого сервера и это абсолютно независимая от кластера 1С информацию. Удалять базы физически не обязательно, если вы планируете к ним подключатся с другого кластера или с помощью автономного сервера.
    Ответ написан
    1 комментарий
  • Конвертация данных 2.1. Получение элемента по индексу для значения не определено, как выгрузить из источника?

    @Dementor
    программист, архитектор, аналитик
    Если не сделаю, меня уволят, помогите!!!!!!!!!!!

    Всем в интернете фиолетово на счет этого факта. И вам тоже должно, если ваша компания считает, что человек без опыта за пару дней может разобраться в таком сложном механизме как Конвертация Данных 2.1

    А вот сам код:

    Я так полагаю (нет явного подтверждения), что это произвольный ПВД. Тогда причина проблемы очевидна! Вы пытаетесь выгрузить по ПКО ОтчетОРозничныхПродажах структуру с ключами ВидОплаты, НомерЧека, ПроцентТорговойУступки, Сумма, СуммаТорговойУступки и КлючПродажи - что и близко не ОРП!!!

    Смотрите сами свое ПКО ОтчетОРозничныхПродажах - первое же ПКС является полем Дата по которому вдобавок идет поиск! А у вас нет даты и об этом все первые три скрина - на каждом прямо кричит "тут нет даты".

    В параллельном вопросе вам отвечал, что очень плохой прием условия вида:

    ОтчетОРозничныхПродажах.Товары.СерияНоменклатуры.УИН = &УИН


    Не делайте так больше. Если вам нужно работать с таблицей документа, то стройте к ней прямой запрос, а свойство КассаККМ как и Дата можно вытащить через точку от Ссылка.

    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ТаблицаОРП.Ссылка КАК Ссылка,
    |	ТаблицаОРП.Ссылка.Дата КАК Дата,
    |	ТаблицаОРП.Ссылка.КассаККМ КАК КассаККМ,
    |	ТаблицаОРП.НомерСтроки КАК НомерСтроки,
    |	ТаблицаОРП.ВидОплаты КАК ВидОплаты,
    |	ТаблицаОРП.НомерЧека КАК НомерЧека,
    |	ТаблицаОРП.ПроцентТорговойУступки КАК ПроцентТорговойУступки,
    |	ТаблицаОРП.Сумма КАК Сумма,
    |	ТаблицаОРП.СуммаТорговойУступки КАК СуммаТорговойУступки,
    |	ТаблицаОРП.КлючПродажи КАК КлючПродажи
    |ИЗ
    |	Документ.ОтчетОРозничныхПродажах.Товары КАК ТаблицаОРП
    |ГДЕ
    |	ТаблицаОРП.СерияНоменклатуры.УИН = &УИН";
    Ответ написан
  • Не находит номенклатуру в запросе по пустой ссылке в 1С, что изменить?

    @Dementor
    программист, архитектор, аналитик
    Сложно понять вопрос, но если вас интересует поведение:

    поиск номенклатуры по УИНу проходит все циклы, однако поиск по ссылке пропускает поиск по циклам и сразу уходит в конец

    То тут все просто - если по вашему условию в базе данных есть документы типа ОтчетОРозничныхПродажах, то они выберутся и по ним пойдет цикл; а если данных нет, то и цикла не будет.

    ОтчетОРозничныхПродажах.Товары.Ссылка = &Ссылка

    Упоминанием в условии вложенного подзапроса, вы усложняете работу планировщику запросов и результат может быть значительно медленнее чем классическое:

    ОтчетОРозничныхПродажах.Ссылка = &Ссылка
    Ответ написан
    Комментировать
  • Как настроить макет в СКД?

    @Dementor
    программист, архитектор, аналитик
    Получаю в итоге кривой отчет:

    Отчет вида таблица именно так и выглядит как у вас на скриншоте.

    Вероятно у вас уникальные товары - убирайте по ним группировку, пусть выводятся только в детальных записях.
    Ответ написан
  • Почему отчет формируется для одного периода и не формируется для другого периода?

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

    Очень важно описать суть проблемы - в правильном вопросе уже значительная часть ответа. Сейчас очень неоднозначно!

    Общая стратегия решения подобных проблем:
    1) Сделать сброс настроек отчета к стандартным и попробовать сформировать. Возможно есть какие-то условные оформления или пользовательские поля, которые вызывают зацикленность.
    2) Сравнить текущий отчет с отчетом в конфигурации поставщика - возможно были доработки, которые и вызвали проблемы.
    3) Как верно подсказал Константин - чистка локального и серверного кеша (если файловая база, то локального достаточно). Если не знаете как чистить локальный кеш - достаточно удалить базу из списка баз и добавить заново (будет создан новый кеш).
    4) Если это полностью ваш отчет или ваша доработка стандартного отчета, то берите консоль запросов, закидывайте туда источник данных и анализируйте...
    Ответ написан
    6 комментариев
  • Что за формат отдает 1С-ка через эндпоинт?

    @Dementor
    программист, архитектор, аналитик
    Это внутренний формат 1С.
    Тут я делал его описание, которое вам поможет: https://infostart.ru/1c/articles/1116103/
    Ответ написан
    1 комментарий
  • Как получить отчеты (как н.п. Баланс) из 1С с помощью API?

    @Dementor
    программист, архитектор, аналитик
    Ответ отличается в зависимости от того, что вам на самом деле нужно.

    получить доступ к данным в этих отчетов

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

    Как получить отчеты (как н.п. Баланс) из 1С с помощью API?

    Если же речь идет об готовых сформированных отчетах в форматах MXL, XLS, PDF и так далее - то эти отчеты следует сделать доступными по API. Если доступности нет в конкретной базе 1С, то ее нужно разработать.

    Примечание. Не всегда нужно ломится напролом. Во многих конфигурациях есть возможность настройки отчетов по расписанию и отправки готового результата на почту - стянуть с почты готовый файл намного проще чем делать API для его прямого получения из 1С.
    Ответ написан
    Комментировать
  • Мне надо написать произвольный код в отчете, но 1с выдает ошибку "формула для показателя содержит синтаксические ошибки", почему?

    @Dementor
    программист, архитектор, аналитик
    В листинге вижу одну процедуру ЗаполнитьПоказатели(), одну функцию ПредыдущийПериод(ТекущийПериод) и одну команду, которая использует функцию для установки Показатели.стр001_гр02

    Все это несамостоятельно и непонятно как работает в отчете. Как минимум тут нет ни самой формулы, ни ее ошибочной валидации - все это очевидно находится в функции ПолучитьДанныеПоПериоду(Период). С текущей постановкой задачи решения проблемы не будет.

    За что сразу цепляется глаз? В процедуре ЗаполнитьПоказатели() во второй строке используют необявленную переменную ТекущаяДата, а в функции ПредыдущийПериод() делается ошибочное предположение о 52 неделях в году - в следующем году (2026) будет 53 недели.
    Ответ написан
    Комментировать
  • Недоступны кнопки связанные с хранилищем конфигурации в серверной базе, что делать?

    @Dementor
    программист, архитектор, аналитик
    Обратите внимание, что у вас проблемы не только с хранилищем - вы и выгрузить/загрузить не можете, проверки не доступны...

    Очевидно, что конфигурация просто закрыта. Откройте ее (первая команда в меню или первая кнопка на панели инструментов конфигурации) и доступы появятся.

    Если не появятся, а на против каждого объекта находится желтый кубик с замочком - это значит что база на полной поддержке вендора и ее изменения запрещены. Сначала включите редактирование (настройку самих объектов можно оставить на полной поддержке, если не планируете их изменять) и теперь уже можете выполнять доработки и использовать хранилище.
    Ответ написан
    Комментировать
  • 1С Как изменить выпадающий список в Групповом изменение реквизитов - произвольный алгоритм?

    @Dementor
    программист, архитектор, аналитик
    1С Как изменить выпадающий список в Групповом изменение реквизитов - произвольный алгоритм?
    Тут много слов, которые не имеют с собой логической связи. Вы хотите написать алгоритм, который будет срабатывать для группы реквизитов, при их редактировании? Хотя не важно...

    Как изменить выпадающий список
    В обычном интерфейсе можно присвоить собственный список. В управляемом интерфейсе нужно очистить текущее содержимое списка и добавить собственные значения.

    Как мне получить список РеквизитЗначение?
    Зависит от версии платформы и вида интерфейса.
    Для обычного интерфейса: ЭлементыФормы.РеквизитЗначение.СписокВыбора,
    а для управляемого соответственно: Элементы.РеквизитЗначение.СписокВыбора.

    Как мне установить значение Объект.Реквизит = РеквизитЗначение_2 ?
    В смысле как установить значение со второго индекса? Выше показано как получить доступ к списку выбора, поместим его в переменную СписокВыбора. И теперь: Объект.Реквизит = СписокВыбора[1].Значение;
    Ответ написан
  • Как записывать НаборЗаписей регистра сведений внутри цикла?

    @Dementor
    программист, архитектор, аналитик
    С первого взгляда - какая-то чушь. Со второго - еще большая чушь!

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

    2) Записывать набор записей внутри цикла по его же записям - это ужасная идея!!! Откинем вероятный код из модуля набора записей, который может изменять состав и/или последовательность строк, но и тогда это просто расточительно - на каждом витке цикла записывать одно и то же

    3) Ужасное наименование переменных, чтобы запутать самого себя! Если транспортное средство ищется в базе по первой колонке из файла, то какого лешего ее назвали "Водитель", а не "Транспорт"??? Если в колонку НомерТС записывается значение из второй колонки файла, какого лешего ее назвали "Транспорт", а не "НомерТранспорта"???

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

    5) Алгоритм не имеет смысла. Подозреваю, что в файле указан транспорт для существующих пользователей, по которому нужно обновить регистр ДанныеСотрудников. Тогда нужно:
    5.1) Сначала пройти по файлу и сформировать таблицу (можно структуру или соответствие), в которую поместить данные по владению транспортом.
    5.2) В цикле по файлу проверять существование транспорта в базе не по наименованию "моя тайота", а по гос.номеру или по вин-коду.
    5.3) Сотрудника тоже желательно искать не по ФИО, а по табельному номеру, налоговому или паспортному номеру.
    5.4) В регистр ДанныеСотрудников не имеет смысл помещает номер автомобиля - так как все будущие операции потребуют поиск по реквизиту "номер" для каждой строчки! Нужно поместить ссылку на элемент справочника "Транспорт"
    5.5) Имея таблицу (можно структуру или соответствие) из пункта 5.1 проходим циклом по ее строкам, создаем менеджер записи с отбором по Сотруднику-Владельцу, если запись выбирается, то устанавливаем ссылку на транспорт и записываем.
    Ответ написан
    3 комментария
  • Как построить карьеру в 1с и заниматься 1С МСФО, ERP, трансформацией, автоматизацией?

    @Dementor
    программист, архитектор, аналитик
    Хорошо знаю мсфо, консолидацию, управленческий учёт, английский, немного sap.

    Вы уже этим на голову выше среднестатистических аналитиков и рп на 1с-проектах! Вам нужно только состыковать ваши знания с терминологией и особенностями конфигураций 1С.

    А может сертификаты не нужны и идти учить все на практике?

    Исходя их ваших навыков, вам не составит сложности в ускоренном режиме подготовится к сертификациям по интересуемым сферам. Сам по себе сертификат вам не нужен, но вам нужны материалы "для подготовки" - вам нужно обратить внимание на те участки, которые особо выделили методологи этих конфигураций/подсистем.

    Лично я большую часть знаний получил уже "в поле", но я был обычным внедренцем, а не аналитиком и тем более не тимлидом. Ваши целевые должности предполагают наличие определенного объёма знаний, которые оптимально получать на специализированных курсах.
    Ответ написан
    Комментировать
  • USDT как создать свой собственный кошелек (это вообще реально)?

    @Dementor
    программист, архитектор, аналитик
    1) Не существует такого блокчейна как USDT. Это токен, который существует поверх 16 популярных блокчейнов и поддерживается ихними нативными кошельками. Выбор зависит от источника поступления ваших USDT, цели для будущего использования и комиссий за обмен/хранение.

    2) Trust Wallet - это мультичейн система для некастодиального хранения. Т.е. кошелек принадлежит только вам и больше никто не имеет к нему доступа. Но система имеет расширенную аналитику и партнерские соглашения со множеством DeFi-проектов для обмена, стейкинга и займов - именно эти функции могут не работать во время технического обслуживания систем. Но в такие моменты вы можете свою сид-фразу использовать в другом кошельке и иметь точно такой же доступ ко всем активам.

    3) Tangem как и Ledger применяют для дополнительного уровня защиты своих активов. Я знаю, что их активно используют криптаны, которые сегодня в конференции в Дубаях, завтра в Гонконге, а послезавтра в Сеуле. Вопрос упирается в деньги. Стоимость набора из троих карточек Tangem равна стоимости крипты на кошельке среднестатистического криптоэнтузиаста, который узнал про крипту после Хомяка и монеты Трампа, и для них вполне достаточно Trust Wallet и Telegram Wallet.
    Ответ написан
    Комментировать
  • Почему зависает 1С (обычные формы) через VPN?

    @Dementor
    программист, архитектор, аналитик
    Обычные формы - создавались для локальных сетей и отличаются избыточным клиент-серверным взаимодействием. Для решения проблемы скорости через интернет и создавали тонкий клиент с "управляемым интерфейсом".

    Можете замерить трафик на свой сервер при работе с БП 1.6 и БП 3.0 - разница существенная.

    Ни единый клиент, с которым я работал не рискнул использовать обычное приложение через ВПН - все сидят на РДП.
    Ответ написан
    Комментировать
  • Телеграм биткоин кошелёк пустой в блокчейне почему?

    @Dementor
    программист, архитектор, аналитик
    "Телеграм-валлет" - это кастодиальный сервис от бывших разработчиков из VK и уже одного этого достаточно для "косого взгляда".

    По опыту потерпевших - ТГ-валлет часто блокирует пользователей без причины, а запросы на снятие бана рассматривают месяцами (все это время средства заморожены). Без KYC тут возможности сильно ограничены, но и сканы паспорта не уберегают от проблем. В принципе, похожие проблемы есть и у многих других бирж второго-третьего эшелона.

    Вывод: Если покупка для трейдинга, а не с целью хранения на холодном кошельке, то лучше использовать ведущие биржи, такие как Байненс - размер их ликвидности позволяет проводить все розничные сделки практически мгновенно, а в случае проблем служба поддержки отвечает достаточно оперативно (а не раз в три месяца). Заводите на биржу свой фиат и дальше уже все операции без посредников на единой площадке.
    Ответ написан
    2 комментария
  • Почему не заполняется табличная часть данными из структуры?

    @Dementor
    программист, архитектор, аналитик
    Тут может быть море ошибок, но скорее всего проблема в строке:

    РеквизитФормыВЗначение("Объект").ВосстановитьНастройкиИзСтруктуры(ОбщиеНастройкиПользователя.СохраненнаяНастройка);


    Тут ты на основании реквизита формы "Объект" создаешь новый объект в памяти, вызываешь его экспортный модуль и удаляешь из памяти. Состояние на форме после этих "манипуляций" не изменяется.
    Ответ написан
    Комментировать