Profi_1C77 @ Сегодня, 11:02
, в мене написано запрос під специфіку нашого довідника ТМЦ. Там не важко викинути ті умови, які Вам не підходять і там все працюватиме.
kostya77 @ Сегодня, 8:35
, Пошук по найменуванню дуже тонка штука (не корректно може працювати)- любий лишній символ (пробіл, буква, крапка, кавичка і т.д) і все новий унікальний елемент довідника. Потрібно використовувати, якийсь унікальний реквізит - код, штрихкод
ФорматИзображения = 0; Если МойФормекс.ВыбратьЗначение(ФорматыИзображений, ФорматИзображения, , 2) = 0 Тогда Возврат; КонецЕсли;
ПутьКФайлу = ВыбратьПуть(ФорматИзображения); Если ПустоеЗначение(ПутьКФайлу) = 1 Тогда Возврат; КонецЕсли;
Если ПустоеЗначение(Таб) = 1 Тогда Возврат; КонецЕсли;
Попытка ТабДок = СоздатьОбъект("ТабличныйДокумент"); ТабДок.ЗагрузитьИзТаблицы(Таб); ТабДок.ЗаписатьКакИзображение(ПутьКФайлу, ФорматИзображения);
//** качество вроде тоже, а размер файла больше.... //Конвертер = СоздатьОбъект ("Йоксель.ГрафическийКонвертер"); //Конвертер.УстановитьДокумент (ТабДок); //Конвертер.КоличествоБитНаПиксел = 24; // //Картинка = Конвертер.ПолучитьИзображение (); //Картинка.Записать (ПутьКФайлу, 1);
Сообщить("Печатная форма сохранена: " + ПутьКФайлу );
Если Вопрос("Открыть сохраненный документ?", "Да+Нет") = "Нет" Тогда Возврат; КонецЕсли;
Попытка ЗапуститьПриложение(ПутьКФайлу); Исключение Сообщить("Не удалось открыть файл: " + ПутьКФайлу); КонецПопытки; Исключение Сообщить("Не удалось сохранить в "+ФорматИзображения+" файл."); Сообщить("Ошибка: " + ОписаниеОшибки()); КонецПопытки;
БухИтоги.ВыбратьСчета(); Пока БухИтоги.ПолучитьСчет()=1 Цикл БухИтоги.ВыбратьПериоды(); Пока БухИтоги.ПолучитьПериод() = 1 Цикл Если ((БухИтоги.ДО(1)<>0) ИЛИ (БухИтоги.КО(1)<>0)) Тогда Док = БухИтоги.Операция.Документ; Сумма = Формат(БухИтоги.Операция.Сумма,"Ч12.2"); Таб.ВывестиСекцию("Док"); КонецЕсли; КонецЦикла; КонецЦикла;
kayfatuch @ Сегодня, 14:23
, Добавьте реквизит в документ "Цена старая", т.к. "цена" периодический реквизит и в ТиС есть такое понятие как "категория цен". То при изменении товара -
спр=СоздатьОбъект("Справочник.Цены"); спр.ИспользоватьВладельца(Товар); Цена = 0; Если спр.НайтиПоРеквизиту("КатегорияЦены",ВыбКатегорияЦен,0)=1 Тогда // пишите например сюда "Учетная" или там какую хотите получать цену ЦенаСтарая=спр.Цена.Получить(ДатаДок); // или например НачМесяца(Датадок) будем получать цену на начало месяца 01/06/2024 и т.д. КонецЕсли;
AnryMc @ Сегодня, 11:20
, вот такой вариант еще нащел:
//Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур. //Не буду растекаться мыслью по дереву и тянуть кота за все известные места, так как надеюсь, все согласятся, что фоновое выполнение это хорошо. Есть простой путь запускать любой код в фоне. Специалисты скорее //всего такой способ используют, но что-то в инете я описания не встретил, решил выложить.
//Перво-наперво создаем общий модуль с именем например "ФоновоеВыполнение" с галкой "Сервер". Добавим туда пару процедур:
Функция ЗапуститьФоновоеВыполнение(ТекстПроцедуры,СтруктураПараметров=Неопределено) Экспорт УникальныйИдентификатор = Новый УникальныйИдентификатор; ПараметрыВыполнения = Новый Массив; ПараметрыВыполнения.Добавить(ТекстПроцедуры); ПараметрыВыполнения.Добавить(СтруктураПараметров);
Процедура ФоноваяПроцедура(ТекстМодуля,ПараметрыВыполнения) Экспорт ПолныйТекстМодуля = ""; Для Каждого ТекПараметр Из ПараметрыВыполнения Цикл ПолныйТекстМодуля = ПолныйТекстМодуля+ТекПараметр.Ключ+"=ПараметрыВыполнения."+ТекПараметр.Ключ+";"+Символы.ПС; КонецЦикла; ПолныйТекстМодуля = ПолныйТекстМодуля + ТекстМодуля; Выполнить(ПолныйТекстМодуля); КонецПроцедуры //И готово!
//Теперь для выполнения когда в любой момент мы можем поместить любую процедуру в текстовую переменную:
ТекстФоновойПроцедуры = " |//Тут передаем текст фоновой процедуры, это может быть вызов каких то процедур или полноценный код |//вызов процедур проще, т.к. тупо легче отлаживать, т.к. код в этой процедуре обычной отладке не поддастся, |//а при вызове процедуры или функции мы ставим там точку останова и включаем в отладке автоматическое |//подключение фоновых заданий. Запускать можно любые методы для выполнения на сервере. | |ОбщийМодульСервер.ВыполнитьНужнуюЗадачу(Парметр1,Парметр2);" И вызывать ее выполнение:
AnryMc @ Сегодня, 9:20
, Я делал когда-то обработку в фоновом режиме "корректировка ответственных в документах РТиУ" Может и не то что Вам надо, но делал так и подключал в 1с 8 в фоновых заданиях запуск обработки по времени(получилось, то что надо заказчику;
//Обработка элементов форматированного документа, входящего в состав параграфа, может оказаться полезной в том случае, //если нужно, например, убрать все оформление в виде курсива или полужирного шрифта.
//Пример:
Полужирный = Новый Шрифт(, , Истина); Курсив = Новый Шрифт(, , , Истина); Обычный = Новый Шрифт; Для каждого Элемент Из Параграф.Элементы Цикл Если ТипЗнч(Элемент) = Тип("ПереводСтрокиФорматированногоДокумента") Тогда Продолжить; КонецЕсли; Если Элемент.Шрифт = Полужирный Или Элемент.Шрифт = Курсив Тогда Элемент.Шрифт = Обычный КонецЕсли; КонецЦикла;
AnryMc @ Сегодня, 14:35
, Доброго дня! В 1с 8 нічого не змінював. А ось в 1с:7.7, яка і досі в нас працює на підприємстві, багато чого доробляли але все під забаганки нашоїх бухгалтерії (нові документи, зміна проводок і таке інше).
4andriy @ Сегодня, 9:05
, Доброго дня, в журналі документів розфарбована ТЧ за ознакою "КонтрольДокументів", якщо контролюємо контрагента:
//========================================== Функция ПроверитьВид() Если ПустоеЗначение(ТекущийДокумент) = 0 Тогда //Если ТекущийДокумент.ЗапретРедактирования = 1 Тогда // Возврат "BRUSH["+глПолучитьЦвет(204,204,204)+"]"; //серый фон Если ((ТекущийДокумент.Контрагент.КонтрольДокументов = 1) И (ТекущийДокумент.Проверен = 1)) Тогда Возврат "FONT["+глПолучитьЦвет(0,0,0)+"] BRUSH["+глПолучитьЦвет(255,255,255)+"]"; //белый фон ИначеЕсли ((ТекущийДокумент.Контрагент.КонтрольДокументов = 1) И (ТекущийДокумент.Проверен = 0)) Тогда Возврат "FONT["+глПолучитьЦвет(0,0,0)+"] BRUSH["+глПолучитьЦвет(255, 222, 179)+"]"; //красный фон КонецЕсли; КонецЕсли; Возврат ""; КонецФункции
url_2l @ Сегодня, 13:14
, Доброго дня! Є такий приклад в моїй конфігурації. В документі списання на виробництво - при зміні реквизиту "підрозділ у шапці документу, заповнюємо підрозділ в рядках документу
текОтвет = Вопрос("У документі змінено реквізит підрозділу. Заповнити підрозділ по рядкам документу?","Да+Нет"); Если текОтвет = "Да" Тогда ВыбратьСтроки(); Пока ПолучитьСтроку()=1 Цикл СтрУчасток = Подразделение; КонецЦикла; КонецЕсли;
//або ось так: якщо заповнено реквізит "разрешил" в документі "заказ", то ставимо "да" для "готов к получению" Если ПустоеЗначение(Разрешил)=0 Тогда ГотовКПолучению = Перечисление.ДаНет.Да; Иначе ГотовКПолучению = Перечисление.ДаНет.Нет; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!