Ответы пользователя по тегу
  • Как в управляемой форме 1С 8.3 программно заполнить дерево значений?

    @Dementor
    программист, архитектор, аналитик
    Да, конечно можно. У корня дерева и у каждой подчиненной строки есть предопределенное свойство "Строки" с типом "КоллекцияСтрокДереваЗначений", с помощью которого можно создавать, изменять и удалять строки ниже по иерархии. Детальнее в синтаксис-помощнике.

    Дополню. У вас на форме не ДеревоЗначений, а ДанныеФормыДерево. Что бы перевести один объект в другой нужно сначала вызвать РеквизитФормыВЗначение(), а после формирования дерева вернуть его на форму с помощью ЗначениеВРеквизитФормы().
    Ответ написан
  • Как вставить ссылку на документ из другой базы 1С?

    @Dementor
    программист, архитектор, аналитик
    Если есть задача хранить ссылку на объект из другой базы и при этом на формах отображать его по представления, то я бы пошел по пути создания дополнительного справочника для внешних данных. Наименование сделать идентичным тому, которое во внешней базе и оно же будет представлением. Далее сохранять путь подключения к другой базе, вид метаданных и GUID из ссылки - по двум последним сущностям вы сможете при COM-соединении получить на той стороне ссылку на элемент. При выборе элемента на других формах можно для начала, наложив фильтр по метаданным, отобрать уже сохраненные в первую базу элементы нужного типа и добавить туда же возможность запроса уже полной выборки во внешней базе.
    Ответ написан
    8 комментариев
  • Как программно вызвать процедуру выбора из справочника в обычной форме 1С 8.2?

    @Dementor
    программист, архитектор, аналитик
    1) Не открывать форму выбора программно, а после оповещения пользователя про ошибку предложить сделать этот выбор ему самому.
    2) Открыть форму модально и получить результат в переменную, которую тут же обработать или забросить в свойство объекта и вызвать эту же функцию (рекурсия).
    3) Воспользоваться обработчиком формы ОбработкаВыбора, который вызывается после события выбора в подчиненной форме (при получении вашей формы выбора нужно указать текущую форму как владельца).
    Ответ написан
  • Можно ли отправлять данные в 1c предприятие между серверами паралельно а не последовательно?

    @Dementor
    программист, архитектор, аналитик
    А что значит для вас последовательно и параллельно?

    Типовой обмен - это когда вы хотите ввести заказ на несуществующего контрагента и создаете сначала контрагента, а потом на него заказ. Так пока вы создаете свой заказ, контрагент по плану обмена уже успеет переехать во вторую базу и никого ждать не будет. Обмен происходит с регулярностью, которую вы сами задаете. Если вам для бух.отчетности, то можно настроить раз в месяц, если выгрузка данных из филиала в главную базу центра, то хоть каждую минуту.

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

    @Dementor
    программист, архитектор, аналитик
    УД.Контакт = УД.Контакт.Ссылка = идентификатор в БД.
    Тебе нужно название: ГДЕ УД.Контакт.Наименование = "2"
    Ответ написан
    1 комментарий
  • Как почистит базу 1с?

    @Dementor
    программист, архитектор, аналитик
    Если зачистить прямо все-все, то:
    1) через конфигуратор сохраните конфигурацию,
    2) создайте новую пустую базу,
    3) загрузите в новую базы конфигурацию из оригинальной базы
    4) сохранитесь и получите абсолютно пустую базу

    Если вам нужно выполнить свертку данных, то это делается специальными обработками. На диске и на сайте ИТС есть обработка "Свертка информационной базы", которая подходит для наиболее популярных конфигураций. Если она вам не подходит, то погуглите другие решения по сайтам 1С-ников (типа infostart.ru). Если и там ничего не найдете, то нужно будет заказать у специалистов написание такой обработки под вашу базу.
    Ответ написан
    Комментировать
  • Проблемы с лицензией 1С. Как решить?

    @Dementor
    программист, архитектор, аналитик
    Это вы уже успели скачать и поставить новенькую 8.3.10?

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

    В крайнем случае, если ничего не поможет, вы как счастливый обладатель лицензионной версии 1С можете написать письмо на v8@1c.ru и они будут обязаны помочь решить вам вашу проблему.
    Ответ написан
  • Из специалиста по информационной безопасности в программиста, возможно ли?

    @Dementor
    программист, архитектор, аналитик
    Не знаю какая у вас программа, но у безопасников которые учились в моем университете программирование было. Точно знаю, так как делал им курсачи на ассемблере :)

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

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

    @Dementor
    программист, архитектор, аналитик
    На ИТС есть на эту тему: "Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8", но я бы порекомендовал лучше почитать статьи с сайта Инфостарт, которые посвящены аккуратным доработкам для легкого последующего обновления. Вот парочка из множества, которые мне выдал поиск:
    infostart.ru/public/518581
    infostart.ru/public/181932

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

    @Dementor
    программист, архитектор, аналитик
    У вас в теме один вопрос про динамический список, в теле еще два вопроса, которые не связаны с темой, про формы списка номенклатуры и про форму элемента. А чуть ниже какой-то кусок кода, который похоже что скопирован с формы одного из производственных документов, где в табличной части при изменении в колонке материала в колонку цены подставляют значение из карточки этого материала.

    Совершенно не понятно, что вам нужно. Если хотите помощи, то приведите свой вопрос в порядок.
    Ответ написан
  • Нарушение сортировки номенклатуры в счете?

    @Dementor
    программист, архитектор, аналитик
    Так происходит не только со счетом, но и с реализацией на основании заказа. Фишка в том, что кроме документа "Заказ покупателя" еще есть документ "Корректировка заказа покупателя", в котором могут отказаться от некоторых изначальных позиций или добавить новые. Документ нужен для тех случаев, когда клиент меняет свое решение по первоначальному заказу и эту информацию нужно где-то фиксировать, но сам заказ должен остаться неизменным для выплаты бонусов торговому агенту или он уже ушел в какую-то другую систему документооборота и потому его правка запрещена.

    Итого получаем, что данные которые пользователь видит в документе заказ, не всегда соответствуют реальному содержанию заказа, который фиксируется в регистре накопления по заказам и можно проанализировать соответствующим отчетом. Именно поэтому при вводе новых документов на основании заказов данные берутся из регистра заказов с той сортировкой, которая там получилась.
    Ответ написан
  • Как с помощью "Плана обмена" отправить данные по HTTP?

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

    Сколько людей - столько и мнений.

    Поэтому у меня следующие вопросы:

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

    2) С помощью периодического вызова метода ПланыОбмена.ВыбратьИзменения(). Он возвращает выборку из уже зарегистрированных для отправки объектов. Детальнее в справке.

    3) Если вам нужно формировать XML-файл, к структуре которого есть строгие требования, которые желательно сразу проверить на соответствие схеме, то да. Если вам нужно просто создать XML-файл (а еще лучше JSON), то просто создайте в памяти из массивов, структур и соответствий требуемый вам объект и далее сериализируйте его в нужный вам формат с помощью функций ЗаписатьXML() или ЗаписатьJSON().
    Ответ написан
    7 комментариев
  • Как отключить веб итс 1с8.3?

    @Dementor
    программист, архитектор, аналитик
    У вас неправильная позиция. Знаете на что похоже со стороны? Типа у вас проблемы с входной дверью - нет ключей, а дверь бронированная. Но вы слышали, что некоторых это не останавливает. Поэтому зашли на форум установщиков дверей и просите советов у "медвежатников". Попахивает криминалом. Откуда слесарям знать что это вообще ваша квартира, а не вы пытаетесь взломать дверь соседа?

    Надоедливая табличка ввода логина/пароля ресурса ИТС появляется только до тех пор, пока вы эти логин и пароль не введете. Надоедает она специально - что бы вы не забыли. А при официальной покупке учетных систем компании 1С вас сразу регистрируют на портале ИТС и дают определенное количество месяцев поддержки бесплатно. В любом случае, у вас как у официального покупателя программы 1С есть нужные логин/пароль. Просто введите их.

    А если хотите поиграть в хакера, то хоть публично не позорьтесь тем, что не можете повторить примитивных инструкций по взлому, которых в интернете валом :(
    Ответ написан
    Комментировать
  • Как окрасить колонки в таблице 1С?

    @Dementor
    программист, архитектор, аналитик
    Для начала рассмотрим какое предназначение форм у документа. Форма списка документов - это визуальное представление набора записей в таблице СУБД. Форма самого документа - это визуальное представление значения свойств одной конкретной записи во все той же таблице СУБД.

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

    Если чекбокс отражает существование реального значения в записи таблицы в СУБД, то его можно использовать и на форме списка. Что бы знать как это сделать, нужно знать вид используемых форм - обычные (типа Visual Studio) или управляемые (HTML-подобные). В первом случае, у списка есть события ПриВыводеСтроки и ПриПолученииДанных - в обоих вариантах доступны значения свойств выводимых записей и настройки их оформления - можно менять шрифты, фон и так далее. Во втором случае, все еще проще и без программирования - у самой формы есть настройки условного оформления и в визуальном конструкторе можно настроить как будут выглядеть какие из записей при наличии в них определенных значений. В последнем случае изменение условного оформления доступно не только программистам в конфигураторе, но и обычным пользователям в процессе их работы.
    Ответ написан
  • Как правильно создать новую колонку в списке документов "Реализация товаров и услуг"(Управление торговлей 10.3)?

    @Dementor
    программист, архитектор, аналитик
    Все правильно. Стандартное поведение платформы. Форма списков документов не предназначена для непосредственного редактирования. Если сильно хочется менять реквизиты без непосредственного захода в документ, то нужно взять напильник и...

    У табличного поля списка есть обработчики событий ПриАктивизацииСтроки, ПриАктивизацииКолонки и ПриАктивизацииЯчейки. В зависимости от нужного вам эффекта выберите то, что больше подходит. Далее предлагайте пользователю интерактивно внести новое значение с помощью функции ВвестиЗначение(). Определите на каком документе находитесь, откройте его программно, измените реквизит на введенное пользователем значение, запишите/проведите и обновите список документов, что бы новое значение перерисовалось на форме. Готово! ;)
    Ответ написан
    Комментировать
  • Почему элемент цикла Для Каждого остается инициализированным после завершения цикла?

    @Dementor
    программист, архитектор, аналитик
    Все верно. Это правильное поведение еще со времен платформы 8.0

    Цикл находится внутри контекста процедуры/функции. В языке 1С в отличии от C++ нельзя просто взять и процедурными скобками объявить еще один изолированный контекст, переменные которого удалятся при выходе за его рамки. Все переменные, которые создаются в рамках условий и циклов продолжают существовать и хранить полученные значения до завершения всей текущей выполняемой процедуры. Если вам нужно беречь память, то после вашего цикла вам самим нужно позаботится об очистке содержимого уже ненужных служебных массивов и таблиц.
    Ответ написан
    Комментировать
  • Как синхронизировать 1С: Предприятие с внешней системой?

    @Dementor
    программист, архитектор, аналитик
    1) Веб-сервисы, про которые вы упомянули предназначены для внешних потребителей. Если инициатором выступает 1С, то вам доступны практически все инструменты (кроме особо экзотических) - обмены через файловые шары, FTP, веб-службы, COM-подключения, прямые выгрузки в СУБД при наличии ODBC-драйверов и так далее.

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

    3) Совсем "вручную" не нужно. Вы можете сделать свою "каркасную" конфигурацию, которую через механизм "сравнения/объединения конфигураций" будете внедрять в пользовательскую, таким образом перенося в нее свои подписки на события и общие модули с их обработкой. Таким образом свои настройки интеграции распространяют такие компании как Битрикс, Агент-Плюс и пр. Для управляемых конфигураций (это самые последние разработки 1С - ERP, Бухгалтерия 3, Управление торговлей 11, Управление небольшой фирмой и так далее) совсем недавно появилась возможность создавать расширения. Обзорно можете почитать тут - https://habrahabr.ru/company/1c/blog/320018/
    Ответ написан
    6 комментариев
  • Не входит в 1С через браузер из внешней сети. в чем может быть дело?

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

    То, что приходит в голову навскидку:
    1) У вас в фаерволе могут быть запрещены входящие кроме стандартных портов (80, 443, 3389 и так далее)
    2) В правилах форвардинга где-то ошибка - или не перебрасываются назад ответы, или ваш порт 10400 перебрасывается на другой IP, но все тем же портом 10400 ; или портом 80, в то время как у вас защищенное соединение и проброс нужен на 443.
    3) Что-то нахимичили в настройках веб-сервера и он отклоняет входящие из-за NATa так как считает, что кто-то пытается использовать MiTM-атаку.
    Ответ написан
    Комментировать
  • В чем разница между объектом формы и элементов фармы в 1с?

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

    Форма - это визуальное представление какого-то объекта (справочник, документ, отчет и пр.). У объекта могут быть данные - это реквизиты, которые описываются в дереве метаданных.

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

    @Dementor
    программист, архитектор, аналитик
    Найти пользователей, которые работают в базах и посмотреть как они работают. Еще лучше получить от них инструкции (их же кто-то вводил в дело и она сами новичков как-то учат). Самостоятельно бросаться в изучение незнакомых конфигураций опасно - можете дров наломать.

    Просто как иллюстрация. Предположим вы знаете УТ10 и вам в нагрузку дали УТ11 - чего уж там, циферку поменяли, а суть такая же. Но не все так просто вместо единого справочника контрагентов у вас уже целых два, вместо двух справочников единиц измерений уже один, а контактную информацию вообще из регистра сведений перекинули в табличные части объектов. А в вашем случае вообще какие-то самописки, где для единиц измерения могут применять все что угодно - перечисления с указанием коэфициента в табличной части товара, или справочник упаковок без подчинения, а лишь с указанием ссылки на владельца/владельцев.
    Ответ написан