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

Массовая установка вида номенклатуры 1С Розница 2.2

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

Скачать можно на инфостарте

Код:

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	
 ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение);
 
КонецПроцедуры


&НаКлиенте
Процедура ПодборНоменклатуры(Команда)
	ПараметрыФормы = Новый Структура;	
	ПараметрыФормы.Вставить("РежимПодбораБезСуммовыхПараметров", Истина);
	ПараметрыФормы.Вставить("Дата", ТекущаяДата());
	
	
	ОткрытьФорму("Обработка.ПодборТоваров.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);

КонецПроцедуры

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

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

Загрузка изображений в справочник номенклатуры из csv файла Розница 2.2

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

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

1) Выбираем разделитель  csv, стартовую строку (например первую строчку — обычно это названия колонок, нужно пропустить)

2) Выбираем колонки, где что находится в файле csv. Соответствие номенклатуры базы и файлу  идет по артикулу. Предусмотрена загрузка до 4-х картинок за один проход, которые располагаются в колонках «Ссылка 1..4». Если в колонке значение-1,  значит файла картинки нет в этой колонке.

3) Нажимаем кнопку «Загрузить CSV» и выбираем файл. После чего он будет загружен в табличную часть

Если  соответствие артикула и номенклатуры найдено в базе — будет заполнена колонка «Номенклатура».

4) Нажимаем кнопку «Прикрепить изображение». Обработка скачает картинку, сохранит его в базе или на томах, и прикрепит к номенклатуре:

Скачать обработку можно здесь

Читать далее Загрузка изображений в справочник номенклатуры из csv файла Розница 2.2

Программное присоединение изображения к номенклатуре. 1С Розница 2.2

Этот код присоединяет картинку к номенклатуре, и делает её «по умолчанию».

	ИмяВременногоФайла="c:\temp\minion.jpg";                        
    ном=Справочники.Номенклатура.НайтиПоКоду("1536       ");            
                                    
	ПараметрыФайла=Новый Структура;
	ПараметрыФайла.Вставить("Автор",Пользователи.НайтиПоИмени("Администратор"));
	ПараметрыФайла.Вставить("ВладелецФайлов",ном.Ссылка);
	ПараметрыФайла.Вставить("ИмяБезРасширения","бла-бла-3");
	ПараметрыФайла.Вставить("РасширениеБезТочки","jpg");
	ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное",ТекущаяУниверсальнаяДата());	
		
	ДвоичДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
	АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичДанные);
	
	фс=ПрисоединенныеФайлы.ДобавитьПрисоединенныйФайл(ПараметрыФайла,АдресВременногоХранилищаФайла,,,);
	
	об=ном.ПолучитьОбъект();
	об.ФайлКартинки= фс;
	об.Записать();

Не печатает чек с СН ЕНВД Розница 2.2

Ну хоть ты тресни, но после выставления в настройках организации:

И установка что продажи по складу именно ЕНВД:

На чеке, при фискализации на ККТ всё равно вылезало СН : УСН Доходы. В результате копания кода 1С, в модуле Общиймодуль.ПодключаемоеОборудованиеРК, нашел функцию отвечающую за выдачу на ККТ систему налогообложения:

Функция ПолучитьСистемуНалогообложенияККТ(Организация, ВидНалога, ДатаДокумента = Неопределено) Экспорт
	
	Если НЕ ЗначениеЗаполнено(ДатаДокумента) Тогда
		ДатаДокумента = ТекущаяДатаСеанса();
	КонецЕсли;
	
	Если ВидНалога = Перечисления.ВидыНалогов.ЕНВД Тогда
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
	ИначеЕсли ВидНалога = Перечисления.ВидыНалогов.ЕСХН Тогда
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕСН;
	ИначеЕсли ВидНалога = Перечисления.ВидыНалогов.ПСН Тогда
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.Патент;
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	|	СистемыНалогообложенияОрганизацийСрезПоследних.СистемаНалогообложения,
	|	СистемыНалогообложенияОрганизацийСрезПоследних.ОбъектНалогообложения
	|ИЗ
	|	РегистрСведений.СистемыНалогообложенияОрганизаций.СрезПоследних(&ДатаДокумента, Организация = &Организация) КАК СистемыНалогообложенияОрганизацийСрезПоследних";
	
	Запрос.УстановитьПараметр("ДатаДокумента", ДатаДокумента);
	Запрос.УстановитьПараметр("Организация"  , Организация);
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();	
	Если Выборка.Следующий() Тогда		
		Если Выборка.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Общая Тогда			
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
		ИначеЕсли Выборка.ОбъектНалогообложения = Перечисления.ОбъектыНалогообложенияПоУСН.Доходы Тогда
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоход;
		Иначе			
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоходРасход
		КонецЕсли;
	Иначе
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
	КонецЕсли;
	
	
КонецФункции

И что мы тут видим? Определение СН идет по выборке из регистра РегистрСведений.СистемыНалогообложенияОрганизаций. Четко видим что ЕНВД присутствует. Идём в форму заполнения этого регистра и видим:

Что за хрень ерунда? Видишь суслика? Нет. А он есть. 1С ники писали-писали, но что-то не дописали. Теоретически по моему предположению, в функции выше должна быть проверка не только СН у организации, но и по складу. Но они её засунули в другую обработку — при сборке позиций товара. И там эта «ЕНВД» в чеке уже никак не участвует. Точнее участвет, но не понятно как. Есть вероятность, что я конечно какую-то галочку очередную не нашел. А может и ошибка 1С. Может в следующих релизах поправят. А пока добавил «костыль»:

Если Выборка.Следующий() Тогда
		// грибов. Костыль чтоб печатался чек ЕНВД
		Если Выборка.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Общая Тогда
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
		ИначеЕсли Выборка.ОбъектНалогообложения = Перечисления.ОбъектыНалогообложенияПоУСН.Доходы Тогда
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоход;
		Иначе
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоходРасход
		КонецЕсли;
	Иначе
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
		//Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
	КонецЕсли;

 

Программный вызов отчета СКД с параметрами и отборами. Выгрузка в файл

Можно сделать примерно так:

таб1=новый ТабличныйДокумент();	   
	СКД=Отчеты.ОценкаВаловойПрибыли.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	Настройки=СКД.НастройкиПоУмолчанию;	
	ПераметрыСКД=Настройки.ПараметрыДанных.Элементы;	
	прскд=ПераметрыСКД.Найти("Период");	
		пер=Новый СтандартныйПериод;
		пер.ДатаНачала=НачалоМесяца(ТекущаяДата());
		пер.ДатаОкончания=КонецДня(ТекущаяДата());
	прскд=пер;
			ЭлементОтбора=Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ЭлементОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
				ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Магазин");//поле отбора
				ЭлементОтбора.ПравоеЗначение=Справочники.Магазины.НайтиПоНаименованию("Вологда Торговля");
				ЭлементОтбора.Использование=Истина;
				ЭлементОтбора.ИдентификаторПользовательскойНастройки=Новый УникальныйИдентификатор();//добавляет отбор  в состав пользовательских настроек
	
	
	 	Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
		
	    //Передаем в макет компоновки схему, настройки и данные расшифровки
	    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);    
	    ВнешниеПараметры = Новый Структура;    		
		
	    //Выполним компоновку с помощью процессора компоновки
	    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);    
		
	    //Выводим результат в табличный документ
	    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	    ПроцессорВывода.УстановитьДокумент(таб1);    
	    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);    	 
		
		таб1.Записать("c:\temp\выловая_прибыль.xls",ТипФайлаТабличногоДокумента.XLS);