воскресенье, 15 декабря 2019 г.

Отчет "Остатки товаров", новый показатель и все-все-все..

Потребовалось однажды доработать отчет "Остатки товаров" из типовой Бух 3.0.
И требование клиента невелико вроде.. Добавить поле, в котором бы перемножить остатки на один из реквизитов номенклатуры.
Ну, думаю, фигня вопрос - сча пользовательское поле замутим и все дела.. Открыл отчет, а полей-то пользовательских там и нет.. То есть нет возможности "Изменить вариант" в БСП-шной форме отчета.. Нету.. Отрезали..
Всякое бывает - думаю.. давай допилим отчет изнутри - благо конфа и так допилена. Согласовали изменение - поехали..

суббота, 7 декабря 2019 г.

Заколебал WinDefender? Возьмите ствол.

Советов, как удалить дефендер в интернете масса (морально-этическую сторону вопроса я оставлю за кадром, равно как и цели, преследуемые этим отключением).. Но вот незадача - при попытке отключить службу дефендера из реестра, последний с честными глазами говорит - нельзя тебе, мил человек, залезать в ветку WinDefend - хошь режь, но нельзя.. Давай себе прав на эту ветку, давай всем прав на эту ветку - пофиг. Нельзя - и все тут.
После некоторых изысканий и размышлений - нашел все же лазейку небольшую. Есть в свете такая программка - называется devxexec (VirusTotal одобряэ). И можно с ее помощью кем хошь для винды прикинуться.. хошь системой (что в данном случае не помогает), хошь честным TrustedInstaller-ом. А вот последнее-таки помогло:

devxexec.exe /user:TrustedInstaller regedit

четверг, 31 октября 2019 г.

Штатное расписание (с историей)

Вопрос: Где же хранятся все данные, которые отображаются в форме позиции штатного расписания?

Ответ: в регистре сведений ИсторияИспользованияШтатногоРасписания.

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

среда, 23 октября 2019 г.

Формирование записей книги покупок (заполнение авансов)

Для корректного заполнения формирования записей книги покупок по авансам необходимо, чтобы были сопоставимы регистры "Расчеты по реализации (бух)" и "НДС по авансам".

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

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

среда, 28 августа 2019 г.

Ubuntu + 1C + веб-клиент (проблемы)

Проблемы, с которыми столкнулись при попытке перевести рабочие места операторов на веб-клиент:
  • Несоответствие разрядности апача и модуля расширения 1С:
Поставили апач на сервер 1С - чтобы избежать проблем с правами и т.п. Но так как апач ставили 32-разрядный, а сервер 1С - 64-разрядный, то, само собой, апач просто так не взлетел - тупо падала служба при попытке старта с ошибкой:
The Apache service named  reported the following error:
>>> httpd.exe: Syntax error on line 121 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/Program Files/1cv8/8.3.12.1685/bin/wsap22.dll into server: The Apache service named \xed\xe5 \xff\xe2\xeb\xff\xe5\xf2\xf1\xff \xef\xf0\xe8\xeb\xee     .
Решение: поставить на сервере модуль расширения веб-сервера из 32-разрядного дистрибутива 1С (остальные части платформы можно не ставить) и прописать путь к нему в конфиге апача:
LoadModule _1cws_module "C:/Program Files (x86)/1cv8/8.3.12.1685/bin/wsap22.dll"

пятница, 26 июля 2019 г.

Глюки, часть N

При формировании отчета на СКД программно, настройка "Автопозиция ресурсов" = "Не использовать" приводит к тому, что в таблице/дереве значений ресурсы есть, но они пустые.. И при этом в табличном документе все вполне себе ОК.

ЗЫ. Обещания от 1С исправить были еще в 2012 году на партнерке..

четверг, 25 июля 2019 г.

Небольшая шпаргалка по часто используемым методам типовых конф


1. Запуск универсального обмена из формы настройки синхронизации:

Функция находится в общем модуле:
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы

Впоследствии из этой процедуры через длинную цепочку стека запускаются процедуры загрузки и выгрузки:
Обработки.КонвертацияОбъектовИнформационныхБаз.ВыполнитьВыгрузкуДанных
Обработки.КонвертацияОбъектовИнформационныхБаз.ВыполнитьЗагрузкуДанных



четверг, 11 июля 2019 г.

Не пугайтесь, это глюки (с)

Столкнулись с такой вот интересной ошибкой - при попытке открыть контрагента в ERP вываливается ошибка:
Несоответствие типов (параметр номер '1')
И приехали.. Ни у одного пользователя контры не открываются.. 
Смотрим код, который выдает ошибку и все больше изумляемся-офигеваем:

Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));

вторник, 9 июля 2019 г.

Шпаргалка по уровням изоляции (плагиат)

Read Uncommitted

  • если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
  • если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
  • шаред локи не используются. Что аналогично установке NOLOCK хинта во все селекты в Read Commited
  • эксклюзивные блокировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции

пятница, 21 июня 2019 г.

Ломтики кода - права доступа

Определить, какая роль дает доступ к определенным объектам метаданных:
ПользовательБД = ПользователиИнформационнойБазы.НайтиПоИмени("Ляля");

Для Каждого РольПользователя Из ПользовательБД.Роли Цикл

 Сообщить("" + РольПользователя);
 Если ПравоДоступа("Чтение", Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения, РольПользователя) Тогда
  Сообщить("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Есть доступ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
 КонецЕсли;

КонецЦикла;


среда, 19 июня 2019 г.

Если не отображаются партнеры в списке

То просто наверняка при переносе или прочем программном создании партнеров был забыт регистр сведений "Иерархия партнеров". В простейшем случае туда достаточно записать и партнера, и родителя равным партнеру, например, использовав подбор и обработку объектов (из инструментов разработчика) со следующим произвольным кодом:
Менеджер = РегистрыСведений.ИерархияПартнеров.СоздатьМенеджерЗаписи();
Менеджер.Партнер = Объект.Ссылка;
Менеджер.Родитель = Объект.Ссылка;
Менеджер.Записать();

среда, 5 июня 2019 г.

Ломтики кода для КД 2.0

Перенос реквизита составного типа

В процедуре ПередВыгрузкой ПКС ставим похожий код:

Если ТипЗнч(Источник) = Тип("СправочникСсылка.Склады") Тогда
    ИмяПКО = "Склады";
    ПКО = НайтиПравило(Источник, ИмяПКО);
ИначеЕсли ТипЗнч(Источник) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда
    ИмяПКО = "СтруктураПредприятия";
    ПКО = НайтиПравило(Источник, ИмяПКО);
КонецЕсли;

понедельник, 3 июня 2019 г.

Универсальный обмен XML ERP - ERP с использованием БСП. Part 2.

Создание инфраструктуры.

1. Создаем свой план обмена. Согласно ИТС план обмена для УОП должен именоваться в виде:
Обмен<Источник><Приемник>
А посему именуется он у нас ОбменУправлениеПредприятиемУправлениеПредприятием.. (По два раза не повторяй-не повторяй, да-да).
Согласно тому же ИТС, в состав этого плана должен входить регистр сведений СоответствияОбъектовИнформационныхБаз. Ну и свои объекты, которые мы хотим регистрировать к обмену - тоже не забываем добавить в состав.

2. Дорабатываем процедуру ПолучитьПланыОбмена общего модуля ОбменДаннымиПереопределяемый:

четверг, 30 мая 2019 г.

Универсальный обмен XML ERP - ERP с использованием БСП. Part 1.

Обоснование

Итак. Делаем обмен между двумя почти идентичными базами ERP. 
Одна - управленческая (далее УБ), вторая - регламентированная (далее РБ). Типовых правил обмена, как водится, нет. Типовых синхронизаций - тоже.
УБ подлежит всяческим изменениям, а в РБ изменения добавляем только по оооочень крайней нужде. (Понятно дело, что РБ нужна сдачи отчетности и ведения блока ЗУП. Всякие там обновления, то да сё, для нее не редкость.)
Соответственно, хотелось бы облегчить учет и закрытие месяца в РБ. А вот в УБ вести все так, как нужно с полными детализациями, бюджетированием и прочими куртизанками с блэк-джеком.

Для того обмена в итоге приходим к следующей схеме:
1. Из УБ отправляются все данные, требуемые для регл.учета, кроме физлиц, сотрудников и ЗП. Из РБ - соответственно, физлица и ЗП.