• 1С, как сделать глобальную переменную COM объекта?

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

    2) Если одно соединение нужно "гонять" (как вариант) между разными обработками, которые (дополнительно усложним) запускаются из фонового процесса, то передавать можно с помощью параметров методов.

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

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

    Если при открытии и при записи должно быть "пусто" вместо нуля, то установите вашему реквизиту тип не число, а... даже не знаю что там вам нужно... возможно строку.
    Ответ написан
    6 комментариев
  • Как из модуля формы элемента справочника обратиться к реквизиту этого справочника? А как обратиться к элементу формы, связанному с данным реквизитом?

    @Dementor
    программист, архитектор, аналитик
    На обычных формах (не управляемые) контекст основного реквизита (в данном случае СправочникОбъект.Номенклатура) дополняет контекст самой формы. Т.е. если в тексте модуля формы явно не определять переменные Артикул, НоменклатурнаяГруппа и т.д. , а сразу начать их читать или заполнять значениями - работа будет идти напрямую с одноименными реквизитами редактируемого объекта.

    Поля ввода, так же как и прочие элементы на форме, входят в множество ЭлементыФормы. Т.е. у вас есть на форме элемент с именем Артикул, то с помощью пути ЭлементыФормы.Артикул можно получить доступ к свойствам вашего поля ввода и далее управлять видимостью, доступностью, подсказкой и прочими свойствами, которые доступны для изменения.

    Если поле ввода находится в коллекции (к примеру, является колонкой в табличном поле, которое связано с табличной частью), то доступ немного усложняется и будет в духе: ЭлементыФормы.Товары.Колонки.Цена
    Ответ написан
    Комментировать
  • Как в 1с 8.3 предприятии добавить поле?

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

    На управляемых формах обычно пользователь видит и может произвольно перемещать только те реквизиты, которые разработчик ему разрешил использовать. Но в случае наличия ссылочных реквизитов (напомню - это ключи к набору свойств некоторого объекта из базы) есть возможность поставить на этот реквизит курсор и нажать на "Добавить поле" - будет показано дерево реквизитов объекта, а если в реквизитах есть другие ссылочные поля, то можно провалится и в них - выбранные поля появляются на форме.
    Ответ написан
  • Какой эмулятор HASP ставить на Windows 10?

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

    Лучше разберись с "не известными тебе причинами" и не морочь себе голову. Может у тебя виртуальная машина в облаке, где ты меняешь параметры?
    Ответ написан
  • Почему файловые блокировки между Apache и Samba не работают?

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

    Что это обычно означает для файловой базы? Конечно же, крах спустя время, ведь веб-клиент и толстый будут лезть в базу несогласованно.
    Это бред. По вашей логике, то что в современных СУБД работают тысячи пользователей одновременно - это миф, так как многопользовательский доступ разрушает любую базу.

    Толстые клиенте, тонкие клиенты или веб-клиенты через вебсервер, которые обращается к базе с помощью библиотеки wsap22.so - все они с точки зрения файла 1Cv8.1CD одинаково читают и пишут данные. Если у вас 2 пользователя одновременно работают с базой через толстый клиент и это ее не уничтожает, то при заходе человека через веб-клиент (или тонкий клиент, но через веб-адрес) ситуация не изменится.

    Я публиковал в вебе файловую базу еще во времена тестовой 8.2.6 (клиент хотел рискнуть, так как для бетта-тестеров это было бесплатно) - и никаких проблем не было.
    Ответ написан
  • Как, находясь в конфигураторе 1С 8.3, узнать какая СУБД используется и как можно получить к ней доступ для настройки бэкапа?

    @Dementor
    программист, архитектор, аналитик
    1) Находясь в Конфигураторе, в окошке "О программе" смотрите название кластера сервера и имя базы в нем.
    2) Закройте Конфигуратор и откройте "Консоль кластеров 1С"
    3) Если в консоли нет записи для искомого кластера - создайте ее (иногда, но редко, требуется знать логин/пароль администратора кластера)
    4) В списке баз кластера найдите искомую (название посмотрели в Конфигураторе)
    5) Заходите в свойства базы и увидите тип СУБД, адрес сервера, название БД и имя пользователя.
    6) Настройки бэкапирования выполняются в зависимости от типа СУБД и имеющихся к ней доступов.
    Ответ написан
  • Что если конфигурация не видит корректно установленного обновления?

    @Dementor
    программист, архитектор, аналитик
    Что если конфигурация не видит корректно установленного обновления?
    Сто процентов обновление установлено верно.

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

    @Dementor
    программист, архитектор, аналитик
    Смотрите, все очень просто.

    У вас есть база 1С определенной конфигурации. Поставщик (те, кто занимаются разработкой и тиражированием) регулярно делает обновления для исправления ошибок и/или развития функционала. Это обновление может или содержать всю новую конфигурацию в файле *.CF или только небольшой кусочек, от предыдущего состояния конфигурации в файле *.CFU

    Но чаще Поставщик дает исполняемый файл, который является самораспаковываемым архивом, который копирует свое содержимое в "каталог шаблонов". Каталогом шаблонов по-умолчанию является путь C:\Users\User\AppData\Roaming\1C\1Cv82\tmplts где размещаются каталоги поставщиков, в которых находятся каталоги их программных продуктов, в которых находятся как сами шаблоны (пустые или заполненные демо-данными базы), так и обновления к ним. При желании, при установки шаблонов и/или обновлений путь можно изменить. Но тогда этот новый путь нужно будет указать в настройках окна со списком баз (что бы при создании новой базы, было понятно где искать шаблон), а так же в настройках поиска обновлений в конфигураторе.

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

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

    @Dementor
    программист, архитектор, аналитик
    Да. Делай кнопку выпадающего списка и заполни список выбора.
    Вот быстренько набросал прототип:
    https://www.dropbox.com/s/qt52g8yiy43zb9f/%D0%A2%D...
    Ответ написан
  • Как из обработчика события "ОбработкаПроведения", назначенного для подписки на событие, получить поля созданного или измененного документа?

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

    @Dementor
    программист, архитектор, аналитик
    tempick,
    Что за файл импорта/экспорта? В каком формате он должен быть?
    https://ru.wikipedia.org/wiki/CommerceML

    И как сделать импорт на стороне 1с?
    В некоторых конфигурациях интеграция есть изначально, для некоторых Битрикс сделал (https://1c.1c-bitrix.ru/ecommerce/download.php), а для оставшихся можно адаптировать битриксовские модули.
    Ответ написан
    Комментировать
  • Как получить весь диапазон изменений по регистру сведений?

    @Dementor
    программист, архитектор, аналитик
    Если ты реально не используешь срез последних, то:
    1) или регистр у тебя не периодический
    2) или реально нет истории изменений - только одна цена на товар, которую можно увидеть открыв форму регистра сведений.
    Ответ написан
  • Как найти документацию на VBA COM обьект EXEL я?

    @Dementor
    программист, архитектор, аналитик
    https://infostart.ru/public/684206/

    Есть дефолтная документация на VBA microsoft но что то она не особо помогла, там описываются константы которые нужны для задания значения, но 1С про них не вкурсе, хотя методы и свойства доступны , а константы нет. Как быть.

    Эти константы в документации описаны - нужно найти таблицы соответствия констант числам и в 1С подставлять уже требуемые коды.
    Ответ написан
    Комментировать
  • Как из пустой информационной базы 1С 8.3 осуществить COM-соединение к другой файловой базе 1С 8.3?

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

    @Dementor
    программист, архитектор, аналитик
    Конечно, можно проще, если не нужна универсальность:

    Процедура ПередЗаписью(Отказ) 
    	
    	Запрос = Новый Запрос(
    	"ВЫБРАТЬ
    	|	Товары.Ссылка
    	|ИЗ
    	|	Справочник.Товары КАК Товары
    	|ГДЕ
    	|	Товары.Наименование = &Наименование
    	|	И Товары.Ссылка <> &Ссылка");
    	Запрос.УстановитьПараметр("Наименование", Наименование);
    	Запрос.УстановитьПараметр("Ссылка", Ссылка);
    	Выборка = Запрос.Выполнить().Выбрать();
    	Если Выборка.Следующий() Тогда
    		Сообщить("Подобный элемент справочника /" + Наименование + "/ существует!
    		    |Модуль: Контроль уникальности элементов справочника." );
    		Отказ = Истина;
    	КонецЕсли; 
    	
    КонецПроцедуры
    Ответ написан
    1 комментарий
  • Как включить компактный вид skype 8 на Windows?

    @Dementor Автор вопроса
    программист, архитектор, аналитик
    Нашел ответы на свои вопросы.

    1) Действительно, есть превью версия, в которой можно пробовать новые фичи - https://go.skype.com/windows.preview.download Но нужных мне там нет :(

    2) Компактный вид реализован только для версии Скайпа, которая устанавливается из Магазина Windows 10. Для Версии Скайпа, которая доступна с его сайта этой и некоторых других функций нет и не будет, что бы стимулировать пользователей через неудобства переходить с Windows 7/8 на Windows10. А На Windows XP они вообще запретили запуск этой программы.

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

    P.S. Абсолютно не понимаю зачем в десктопном приложении внедрять интерфейс телефонного приложения. Неужели так сложно не ломать созданное еще до них, что хорошо работало?
    Ответ написан
    Комментировать
  • Как упорядочить строки в печатной форме по выбору пользователя?

    @Dementor
    программист, архитектор, аналитик
    1) На форме размещаете "Поле переключателя" с вашими вариантами сортировок
    2) В вашем тексте запросе вместо "РасходнаяНакладная.Номенклатура.Количество УБЫВ" пишите что-то типа "#РежимСортировки"
    3) Чуть ниже делаете, в зависимости от выбранного пользователя режима сортировки, замену в тексте вашей метки на реальное поле с направлением сортировки. Типа:
    Если ВариантСортировки = 0 Тогда
      СтрЗаменить(Запрос.Текст, "#РежимСортировки", "РасходнаяНакладная.Номенклатура.Количество УБЫВ");
    ИначеЕсли ВариантСортировки = 1 Тогда
      СтрЗаменить(Запрос.Текст, "#РежимСортировки", "РасходнаяНакладная.Номенклатура.Количество ВОЗР");
    КонецЕсли;
    Ответ написан
    4 комментария
  • Как создать в конфигураторе отчет такой формы?

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

    ВЫБРАТЬ
    	ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    	ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    	ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    	ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    	ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    	ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
    ИЗ
    	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
    ИТОГИ ПО
    	Склад
    Ответ написан
  • 1с Как сделать вызов формы на какое то действие по обьекту?

    @Dementor
    программист, архитектор, аналитик
    У вас мешанина терминов. Если вы попытаетесь гуглить свой вопрос, то получите фигню.

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

    Вы забываете, что решения на платформе 1С - это не классическое ООП, а DSL (ПОЯ), и потому у вас идет нагромождение бредовых нежизнеспособных идей, которые я даже не буду комментировать.

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