Архив рубрики: 1с Не умей собрать, умей сохранить

Получить в 1С открытую форму документа из внешней обработки

В УПП есть возможность подключить к документу установки цен номенклатуры внешнюю обработку заполнения табличной части. Нужно сделать заполнение документа через построитель запроса максимально штатно. Без изменения штатной формы документа. Здесь появляется сложность получения открытой формы документа из внешней обработки.

У документа данные хранятся в двух табличных частях. Первая – Товары, вторая – ТипыЦен. Тот кросс цен, который мы видим на форме (товары – строки, типы цен – колонки) заполняется логикой формы документа.

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

Вариантов решения несколько, но в отсутствии экспортируемых процедур все сводится к одному – нужно программно закрыть/открыть форму. Здесь варианты:

  1. Как обычно наплевать на красивость и при завершении работы обработки заполнения вывести юзеру сообщение о том, что документ заполнился и нужно его закрыть/открыть, при этом форма отрисуется как нужно.
  2. Найти какой то способ добраться до формы, например через табличное поле, которое передается в процедуру инициализации внешней обработки заполнения третьим параметром. Здесь получить родителя элемента формы в виде собственно родителя не получится. В толстых формах это по всей видимости не работает. Это вам не HTML.
  3. Обратиться к форме напрямую, через документ-объект. Документ-объект передается в первом параметре процедуры инициализации обработки. Однако попытка обратиться к уже открытой форме документа из формы обработки заполнения успехом не увенчивается. Есть ощущение, что форма внешней обработки живет в каком то своем контексте и открытую форму объекта из того же сеанса не видит. К примеру если получить форму документа через объект и попытаться открыть ее, то ничего не произойдет.
  4. Работающее решение по Мерфи нашлось последним. Так всегда происходит, очевидно потому, что дальше уже не ищут. Нужная форма обнаруживается через конструкцию ДокументОбъект.ПолучитьФорму() в модуле объекта внешней обработки заполнения табличной части.

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

Получить в 1С открытую форму документа из внешней обработки

Сброс пароля базы 1С в варианте SQL

1. Убираем таблицу пользователей

2. Заходим в конфигуратор.

3. Возвращаем таблицу пользователей.

4. Меняем пароль админу.

1С. Отключить предупреждение об опасных действиях.

Добавить в …\bin\conf\conf.cfg
DisableUnsafeActionProtection=.*;

Установить стандартные настройки СКД

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

Странно, что команда “Установить стандартные настройки” на форме отчета с СКД по умолчанию есть, а вызвать ее программно нельзя. Можно сделать это очевидно необходимое действие только через пляску с бубном.
Навели на решение здесь Отборы в отчётах. Нюансы работы компоновщика настроек.
Статью распечатываю и вдумчиво читаю…

Нарушение прав в привилегированном модуле.

Часто актуально для внешних обработок, т.к. (неочевидная очевидность)
в безопасном режиме УстановитьПривилегированныйРежим() НЕ РАБОТАЕТ

Запуск регламентного задания 1С от определенного пользователя.

В случае, когда код метода регламентного задания должен быть запущен с полными правами, а модуль в котором он определен не имеет признака “Привилегированный”, можно определить от какого пользователя задание должно исполняться. Для этого необходимо указать пользователя в соответствующем регламентном задании. Это можно сделать, например, так:

Восстановление пароля SA на MS.SQL-2008

Работает если есть локальные админские права на сервере с SQL.

1. Запускаем с правами админа консоль.
2. Останавливаем все службы SQL
3. Стартуем из консоли сервер с параметрами
“C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe” -m -sSQLEXPRESS -T7806
-m – монопольный режим. Нужен, чтобы локальные (dedicated) админы стали админами инстанса.
-s – имя инстанса
-T7806 – ключ, без которого, -m на 2008м не работает.
см. здесь https://www.mssqltips.com/sqlservertip/2538/enabling-dedicated-administrator-connection-in-sql-server-2008-express-edition/
и здесь https://msdn.microsoft.com/ru-ru/library/dd207004(v=sql.105).aspx
4. Заходим в менеджмент студио и наруливаем новый пароль для sa. И добавляем локальным админам право sysadmin, чтобы больше дурью не маяться.

ключи можно добавлять сюда

“Запись с такими ключевыми полями уже существует” в установке цен номенклатуры.

Документ “Установка цен номенклатуры” при записи большого количества цен вылетает с ошибкой “Запись с такими ключевыми полями уже существует”. При этом, обнаружить дубли номенклатуры не удается. Есть основания полагать, что проблема кроется где то в механизме формирования движений по регистру сведений.
Поставил периодичность для регистра “В пределах секунды”.

Электронный документооборот из 1С через SOAP. Подготовка.

Работа с сервисами EDI возможна через компонент mssoapclient30 от Microsoft.
Ниже шаги по настройке среды для использования указанной компоненты.
Читать далее

54ФЗ. Касса не передает данные в ОФД.

Для того, чтобы касса передавала данные в ОФД нужно:
1. Настроить и запустить службу Ethernet over USB:

Основная настройка заключается в указании номера порта связи с ККМ. Как правило это один из двух портов, которые служат для связи с ККМ, с меньшим номером. Порт с большим номером – служит для передачи данных чека в ККМ.
2. Чтобы нормально проходил тест связи с ОФД.

Материалы здесь:
https://www.ss-20.ru/index.php?topic=397.0
http://support.merkata.ru/hc/ru/articles/115002972805-%D0%94%D0%B8%D0%B0%D0%B3%D0%BD%D0%BE%D1%81%D1%82%D0%B8%D0%BA%D0%B0-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81-%D0%9E%D0%A4%D0%94-%D0%BD%D0%B0-%D0%90%D0%A2%D0%9E%D0%9B-FPrint-%D1%81%D0%B5%D1%80%D0%B8%D0%B8-%D0%A4
https://xn--80aapgmbx5f.xn--80asehdb/files/OFD_test.pdf
Тест должен проходить со значением ЕСТЬ или УСПЕШНО во всех строках.

У меня в результате обработки команды “82 01 06 00”, помимо прочих строк, говорящих, что все отлично, в строке “Доступ к тест. стр.:” было значение “Отсутствует”. Это говорит о том, что деньги в ОФД за подключения новых касс бухгалтерия перечислить забыла.