Архив метки: 1c

1С: Ошибка при выполнении файловой операции 1cv8.cfu. Неожиданный вызов метода MemoryMappedFileObject :: write

Неожиданно при попытке обновления вылезла такая ошибка. Гугленье давало противоречивые результаты. Как лечил?

1) Достал оригинальный cf файл от релиза совпадающего с тем, который хотел обновлять (orig.cf)

2) Выгрузил в файл cf текущую конфигурацию (cur.cf)

3) Создал Новую БД, загрузил в неё orig.cf, объеденил, предварительно сняв с поддержки, с cur.cf, выгрузил файл cur_orig.cf

4) В текущую базу БД загрузил файл cur_orig.cf

5) Поставил на поддержку, изменив комментарий в любом реквизите, и обьеденив с конфигурацией orig.cf Перед началом объединения будет вопрос «поставить на поддержку?». Отвечаем Да, и выбираем галочки «Объект редактируется с сохранением поддержки»

6) Штатно обновил до следующего релиза..

Надеюсь косяков и глюков не будет.. Сильно надеюсь…

Снижения приоритета для определенных процессов в Windows

Ситуация: сервер RDP, где люди работают в 1С. Часть пользователей к сожалению не удается переубедить НЕ пользоваться браузерами на удаленном рабочем столе, в результате иногда получаются ситуации что процессор забит на 100% из-за открытых firefox и chrome в ущерб работе непосредственно 1С.

Выход: принудительное понижение приоритета выполнения браузеров при помощи скрипта PowerShell

Скрипт prior.ps1:

#PowerShell
function set-ProcessPriority { 
    param($processName = $(throw "Enter process name"), $priority = "Normal")
    get-process -processname $processname | foreach { $_.PriorityClass = $priority }
    write-host "`"$($processName)`"'s priority is set to `"$($priority)`""
}

set-ProcessPriority chrome BelowNormal
set-ProcessPriority firefox BelowNormal
set-ProcessPriority sbis3plugin BelowNormal
Start-Sleep -Seconds 3

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

 

Диалоговое окно в 1С

Можно реализовать стандартным способом, что-то типа:

&НаКлиенте
Процедура ВыключитьИнтернет(Команда)
	Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса",ЭтотОбъект);	
	ПоказатьВопрос(Оповещение,
        "Вы убеждены что хотите отключить несчастного контрагента?",
        РежимДиалогаВопрос.ДаНет,
        0, // таймаут в секундах
        КодВозвратаДиалога.нет, // (необ.) кнопка по умолчанию
        "Хороший вопрос" // (необ.) заголовок
    );    
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат,Параметры)  Экспорт
	если Результат=КодВозвратаДиалога.Да тогда
		сообщить("--жаль..");
	иначе
		сообщить("");
	конецесли;	
КонецПроцедуры

Передача параметров при создании Формы.

Задача: по нажатии кнопки, открыть форму обработки с заполненным реквизитом ИНН.

Собственно вот классический способ:  по нажатию кнопки выполняем код:

&НаКлиенте
Процедура Расш1_ДействияБиллингаПосле(Команда)
	ПП = Новый Структура("ИНН", "100");
	Форма=ПолучитьФорму("Обработка.ДействияLanBilling.Форма.Форма",ПП);
	Форма.Открыть() 	
КонецПроцедуры

Далее обрабатываем параметр в самой форме, в процедуре ПриСозданииНаСервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Параметры.Свойство("ИНН") Тогда
        объект.ИНН=Параметры["ИНН"];
    КонецЕсли;	
КонецПроцедуры

Атол 55Ф + терминал эквайринга VeriFone 802, ошибка 4321

При проведении эквайринговой операции 1С Розница 2.2 выводит ошибку:

При выполнении операции возникла ошибка:
«Ошибка отмены операции транзакции. Обратитесь в банк. Ошибка при выполнении функции АварийнаяОтменаОперации, ответ терминала — Ошибка 4321».
Оплата по карте не была произведена.

1) Тест драйверов кассы ККМ проходит
2) Тест драйверов терминала проходит
2) SBRFCOM.dll зарегистрирована regsvr на 7 параметров (пробовал и на 3)

Ошибка происходит только при выводе чека экваринговой операции на ККМ. Деньги с карточки снимаются.

Решение: заработало когда переставили терминал в порт USB3.0 (синенький). Возможно и правда не хватало питания, а может быть особенность реализации конкретно на этой материнской плате. Т.к. на других ПК всё работало в любых портах.