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

1C 8.3 : нельзя изменять поле содержащее объект данных формы

Ошибка возникает при следующем коде:

&НаСервере
Процедура ПробитьЧекНаСервереГрибов(документ)
ОбщийМодульГрибов.ЗаписатьВБазуMySQLДокумент(документ);	
КонецПроцедуры
&НаКлиенте
Процедура ПробитьЧек(Команда)
	ПробитьЧекНаСервереГрибов(Объект);	     	
КонецПроцедуры

Почему?  Дело в том, что в параметре процедуры ПробитьЧекНаСервереГрибов(Объект) мы передаём данные формы с типом ДанныеФормыКоллекция, и потом на сервере пытаемся их изменить.Даже если эти данные мы не меняем внутри процедуры, 1С на всякий случай ругнется.. Чтобы этого избежать, достаточно изменить код так:

&НаКлиенте
Процедура ПробитьЧек(Команда)	        
	ддк=Объект;
	ПробитьЧекНаСервереГрибов(ддк);	     
КонецПроцедуры

Поиск документа 1С по номеру документа

В некоторых видах документов, которые имеют периодическую нумерацию, например РеализацияТоваровИУслуг, при поиске документа по номеру, нужно указывать дату (период), к которому этот документ относится. Мелочь, а 15 минут потратил, на то чтоб понять почему не возвращает без этого параметра ссылку на документ 😉

	док= Документы.РеализацияТоваров.НайтиПоНомеру("ИП00-008198",ТекущаяДата());
	сообщить(док);

1с и работа в Linux

Попробовал поработать в 1С в конфигураторе и в релизе под Ubuntu 18.4 Давно хотел, да всё собраться не мог. Ну что могу сказать? Сыровато.. Рандомно вылетает конфигуратор с не сохраненной работой. Теряется фокус окон. Иногда не открывается меню. В редакторе конфигуратора иногда курсор становится не видимым. И это спустя сколько лет как работу под Linux озвучили?

Работать конечно можно…. при нужде.

1C: Множественный выбор из справочника, включая группы на управляемой форме

Казалось бы простой вопрос, а гуглить пришлось чтобы сделать примерно то что мне нужно порядка часа.

Создаем реквизит с типом «Список значений»

Код модуля:

&НаКлиенте
Процедура КатегорииТовараНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ПараметрыПодбора = Новый Структура;    
	ПараметрыПодбора.Вставить("ЗакрыватьПриВыборе", Истина);
	ПараметрыПодбора.Вставить("МножественныйВыбор", Истина);
	ПараметрыПодбора.Вставить("ВыборГруппИЭлементов", ИспользованиеГруппИЭлементов.ГруппыИЭлементы);   
	ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", ПараметрыПодбора, Элементы.КатегорииТовара);
КонецПроцедуры


 &НаСервере
  Процедура ИтоговаяТаблицаОбработкаВыбораНаСервере(ВыбранноеЗначение)
     Для Каждого вЗнч Из ВыбранноеЗначение Цикл        
           нстр=объект.КатегорииТовара.Добавить(вЗнч);
     КонецЦикла;
  КонецПроцедуры

&НаКлиенте
Процедура КатегорииТовараОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	 СтандартнаяОбработка = Ложь;
     ИтоговаяТаблицаОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры

Результат:

Странное поведение документа ОплатаОтПокупателейПлатежнойКартой в 1С Розница 2.2

Если документ проведен, то денежки идут на регистры «Расчеты с контрагентами» и «Продажи по платежным картам», вне зависимости от того, прошла оплата по карточке или нет. Т.е. например типичная ситуация:

Создали документ «Эквайринговая операция», провели его, попробовали оплатить с карты — не прошло. Клиенту «ну тогда платите наличкой». Документ закрыли, но 1С по регистрам будет считать, что деньги то поступили не в кассу! Хотя по факту вообще они могут никуда не поступить.

И в отчете «Продажи по платежным картам» мы тоже ничего не увидим!! Дурдом.

Единственный вариант — писать свой отчет по продажам, в котором проверять на true поле «Оплата прошла».