Ответы пользователя по тегу 1С-Предприятие
  • Почему не работает функция СтрНайти()?

    @Dementor
    программист, архитектор, аналитик
    1) отключить режим совместимости
    2) написать свою функцию поиска, которая будет в цикле искать до тех пор пока искомая подстрока встречается и последнее найденное будет первым с права.
    Ответ написан
    1 комментарий
  • Почему при попытке выгрузить информационную базу на диск D, возникает ошибка "Нехватка места на диске C"?

    @Dementor
    программист, архитектор, аналитик
    Измените на время выгрузки значения системных переменных TMP и TEMP на каталог на диске D:\
    Если не хотите менять темпы для всех приложений, то можно это сделать только для 1С. Создайте и запустите батник, где перед запуском самой 1С напишите:

    SET TMP=D:\TEMP
    SET TEMP=D:\TEMP
    Ответ написан
    8 комментариев
  • Как из конфигуратора или пользовательского режима выгнать пользователей из 1С?

    @Dementor
    программист, архитектор, аналитик
    Заходи в консоль кластера серверов 1С и "выкидывай" кого нужно и откуда нужно.
    Ответ написан
    3 комментария
  • Почему не запускается код из модуля управляемого приложения?

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

    2) Отладка серверных процедур не будет запускаться, если сервер 1С не переведен в режим отладки. по умолчанию - отладка только клиентского кода.
    3) Отладка фоновых процессов, вызовов веб-сервисов, внешних соединений и так далее включается в настройке автоматического подключения окна поиска предметов отладки.
    4) Если нужно делать отладку именно веб или http сервисов, то нужно добавить элемент debug в файл default.vrd.
    Ответ написан
    4 комментария
  • Можно ли на форме реализовать интерактивный чертёж/макет шильдика?

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

    Обратитесь к программистам 1С. Можно долго объяснять теорию про варианты вывода графической информации на формы и вы возможно даже умом поймете механику, но какой из этого толк, если вы не сможете это запрограммировать?
    Ответ написан
    5 комментариев
  • Почему не работают ограничения на значения для поля ввода в форме элемента справочника?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Как я понял, вам нужно видеть справочник номенклатуры, но по некоторому условию по клике на элемент открывать не карточку этого элемента, а форму какого-то отчета, куда параметром передать ссылку на элемент, по которому кликнули. Вариантов реализации масса и зависят от точного задания. Самое простое - это в списке Номенклатуры (элемент списка на форме списка) переопределить событие Выбор - там сделать проверку вашего условия, по выполнению которого отключить стандартное поведение и открыть требуемую форму. Если нужно более универсально и переопределять из любого места в коде, то в форме элемента в событиях создания или открытия (в зависимости от типа формы) можно отказаться от стандартного открытия и вызвать нужную форму.
    Ответ написан
    3 комментария
  • Debian 10. 1C:Предприятие 8.3.12.1790 + Postgres Pro 1C 11.1. Как прикрутить?

    @Dementor
    программист, архитектор, аналитик
    и 1С:Предприятие нормально работают.

    В том-то и проблема, что не работает:
    warning: cannot change directory to /home/usr1cv8: Нет такого файла или каталога
    Error: service failed to start!

    Ваша служба сервера 1С должна запускаться под пользователем usr1cv8 - проверьте настройки!
    Ответ написан
    1 комментарий
  • Как установить/залить конфигурацию в новую созданную базу 1С?

    @Dementor
    программист, архитектор, аналитик
    Заходишь в конфигуратор. Меню "Конфигурация", команда "Загрузить конфигурацию из файла".
    Ответ написан
  • Как в 1С запросом получить значение поле Документа, если это поле имеет ссылочный тип?

    @Dementor
    программист, архитектор, аналитик
    Выше Константин все правильно написал. Организация из ЗаказНаПроизводство - это не строка, а внутренний ссылочный тип, которому нет соответствия в питоне и потому с этим значением стандартный вывод не справляется.

    Подозреваю, что это будет COM-объект. Если моя гипотеза правильна, то должно сработать:
    print(sel.ORG.Description)
    Ответ написан
  • Требуется ли для системного администратора знание программирования в 1с/web?

    @Dementor
    программист, архитектор, аналитик
    Заходит в ИТ отдел главбухша и прямиком к ведущему админу подходит:
    - У меня такая-то такая-то проблема с 1c.
    - У нас нет штатного специалиста по 1c, но я его вызову, будет завтра.
    - А знаете, у меня на прошлой работе, этим занимался админ!
    Тот с небольшой паузой:
    - А у меня на прошлой работе, главбухша полы мыла!

    P.S. Думаю, что намек понятен. Единственное программирование, которым должен заниматься админ - это автоматизация своей работы, а не решение бизнес-задач.
    Ответ написан
    5 комментариев