Рубрика: 1C
Разработки на платформе 1С
Жизнь замечательных грибов
Разработки на платформе 1С
Присоединенные к номенклатуре файлы можно выгрузить например так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
&НаСервереБезКонтекста Процедура ПолучитьФайлыНаСервере() ном=Справочники.Номенклатура.НайтиПоКоду("1534 "); сообщить(ном.ФайлКартинки); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, | НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу, | НоменклатураПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла, | НоменклатураПрисоединенныеФайлы.Том КАК Том, | НоменклатураПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище |ИЗ | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы |ГДЕ | НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка = &ном" ; Запрос.УстановитьПараметр("ном", ном); файлы=Запрос.Выполнить().Выбрать(); n=0; Пока файлы.Следующий() Цикл сообщить(файлы.ПутьКФайлу); сообщить(файлы.ТипХраненияФайла); сообщить(файлы.Том); сообщить(файлы.ФайлХранилище); картинка=ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(файлы.Ссылка); картинка.Записать("c:\temp\"+n+".jpg"); n=n+1; конеццикла; КонецПроцедуры &НаКлиенте Процедура ПолучитьФайлыКлиент(Команда) ПолучитьФайлыНаСервере(); КонецПроцедуры |
И что мы тут видим? Определение СН идет по выборке из регистра РегистрСведений.СистемыНалогообложенияОрганизаций. Четко видим что ЕНВД присутствует. Идём в форму заполнения этого регистра и видим:
Можно сделать примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
таб1=новый ТабличныйДокумент(); СКД=Отчеты.ОценкаВаловойПрибыли.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки=СКД.НастройкиПоУмолчанию; ПераметрыСКД=Настройки.ПараметрыДанных.Элементы; прскд=ПераметрыСКД.Найти("Период"); пер=Новый СтандартныйПериод; пер.ДатаНачала=НачалоМесяца(ТекущаяДата()); пер.ДатаОкончания=КонецДня(ТекущаяДата()); прскд=пер; ЭлементОтбора=Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Магазин");//поле отбора ЭлементОтбора.ПравоеЗначение=Справочники.Магазины.НайтиПоНаименованию("Вологда Торговля"); ЭлементОтбора.Использование=Истина; ЭлементОтбора.ИдентификаторПользовательскойНастройки=Новый УникальныйИдентификатор();//добавляет отбор в состав пользовательских настроек Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка); ВнешниеПараметры = Новый Структура; //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(таб1); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина); таб1.Записать("c:\temp\выловая_прибыль.xls",ТипФайлаТабличногоДокумента.XLS); |
Ситуация: при подборе товаров в документе реализации не заполняется автоматически текущим продавцом соответствующий столбец в таблице с товаром.
Это не баг и не ошибка, по гуглу, «так и должно». Но руками выставлять нужного продавца — велика вероятность ошибки. А не заполнять — часть отчетов строится без «продавца». Например «Валовая прибыль».
Решение:
Добавляем подписку на событие для документа «Реализация», с событием «Перед записью». В принципе достаточно добавить что-то вроде:
1 2 3 4 5 6 7 |
Функция ПроверкаЗаполненияПродавца(Источник, Отказ) Экспорт //проверяем заполнена ли табличная часть реализации продаванами или нет для каждого стр из источник.Товары цикл стр.продавец=источник.продавец; конеццикла; /// КонецФункции |