Розница 2.2 программное получение основного расчетного счета
|
1 2 |
УчетДенежныхСредствБП.УстановитьБанковскийСчет( нсчет.СтруктурнаяЕдиница, Объект.Организация, справочники.Валюты.НайтиПоНаименованию("руб"), Истина); |
Жизнь замечательных грибов
Разработки на платформе 1С
|
1 2 |
УчетДенежныхСредствБП.УстановитьБанковскийСчет( нсчет.СтруктурнаяЕдиница, Объект.Организация, справочники.Валюты.НайтиПоНаименованию("руб"), Истина); |
Можно реализовать стандартным способом, что-то типа:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
&НаКлиенте Процедура ВыключитьИнтернет(Команда) Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса",ЭтотОбъект); ПоказатьВопрос(Оповещение, "Вы убеждены что хотите отключить несчастного контрагента?", РежимДиалогаВопрос.ДаНет, 0, // таймаут в секундах КодВозвратаДиалога.нет, // (необ.) кнопка по умолчанию "Хороший вопрос" // (необ.) заголовок ); КонецПроцедуры &НаКлиенте Процедура ПослеЗакрытияВопроса(Результат,Параметры) Экспорт если Результат=КодВозвратаДиалога.Да тогда сообщить("--жаль.."); иначе сообщить(""); конецесли; КонецПроцедуры |
Задача: по нажатии кнопки, открыть форму обработки с заполненным реквизитом ИНН.
Собственно вот классический способ: по нажатию кнопки выполняем код:
|
1 2 3 4 5 6 |
&НаКлиенте Процедура Расш1_ДействияБиллингаПосле(Команда) ПП = Новый Структура("ИНН", "100"); Форма=ПолучитьФорму("Обработка.ДействияLanBilling.Форма.Форма",ПП); Форма.Открыть() КонецПроцедуры |
Далее обрабатываем параметр в самой форме, в процедуре ПриСозданииНаСервере:
|
1 2 3 4 5 6 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Свойство("ИНН") Тогда объект.ИНН=Параметры["ИНН"]; КонецЕсли; КонецПроцедуры |
При проведении эквайринговой операции 1С Розница 2.2 выводит ошибку:
При выполнении операции возникла ошибка:
«Ошибка отмены операции транзакции. Обратитесь в банк. Ошибка при выполнении функции АварийнаяОтменаОперации, ответ терминала — Ошибка 4321».
Оплата по карте не была произведена.
1) Тест драйверов кассы ККМ проходит
2) Тест драйверов терминала проходит
2) SBRFCOM.dll зарегистрирована regsvr на 7 параметров (пробовал и на 3)
Ошибка происходит только при выводе чека экваринговой операции на ККМ. Деньги с карточки снимаются.
Решение: заработало когда переставили терминал в порт USB3.0 (синенький). Возможно и правда не хватало питания, а может быть особенность реализации конкретно на этой материнской плате. Т.к. на других ПК всё работало в любых портах.
1С удивительная платформа. Иногда спотыкаешься на ровном месте на пару часов и не знаешь ты дурак или нет.. Ну вот казалось бы простая вещь — сделать список выбора на управляемой форме (выбор из списка значений), а застрял из-за одного нюанса, из-за которого то что выбрал в списке не отображалось в поле выбора..
Теперь воспроизведу всё пошагово:
Создаем реквизит, например «Категория». ВАЖНО! — тип — произвольный:

У меня был длительный затык именно на этом месте.
Далее ставим галочку «Режим выбора из списка» и назначаем обработку начала выбора на клиенте
Ну и собственно заполнение списка:
&НаКлиенте Процедура КатегорияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Элементы.Категория.СписокВыбора.Очистить(); Элементы.Категория.СписокВыбора.Добавить(0,"1"); Элементы.Категория.СписокВыбора.Добавить(1,"2"); Элементы.Категория.СписокВыбора.Добавить(2,"Тест"); КонецПроцедуры
В чём была моя ошибка? Тип реквизита выбирал текст. Ну да, только когда я добавлял в список выбора цифры в Элементы.Категория.СписокВыбора.Добавить(0,»1″), то 1С их преобразовывала с цифры..
Update: 02/04/2024:
Для того чтобы получить выбранное значение или индекс можно воспользоваться:
&НаКлиенте
Процедура ПостроитьОтчет(Команда)
сообщить(Элементы.Оповещенные.ВыделенныйТекст); // текст
сообщить(Оповещенные); //индекс
КонецПроцедуры
На этом задача «выбор из списка значений» будем считать завершеной. Еще больше всяких шпаргалок по 1С, легко найдется здесь.