Музыченко Констнантин

5
Рейтинг

Qbik
Констнантин Музыченко



  •   Регистрация: 17.01.2010 (14 лет назад)

  •   Был(а) на сайте: 26.07.2022

Подписчики 2

Рейтинг 5

Умный заказ ТМЦ для ТиС 9.2 с отправкой по электронной почте

Инструменты и обработки Для всех Оперативный учет 7.7 1С:Торговля и склад 7.7 Абонемент ($m) Внешняя обработка (ert,epf) Логистика, склад и ТМЦ

Удобное средство для менеджера по закупкам, для определения объема заказа товара на основании продаж за предыдущий период, с отправкой заказа по e-mail (например поставщику) прямо из 1С. Возможность ручной корректировки, расчет общего тоннажа заказа, а также возможность одновременной выгрузки заказа для автоматической загрузки в учетную систему получателя (поставщика) делают его незаменимым помощником в оперативном учете.

1 стартмани

26.09.2012    17546    55    Qbik    11       

5

Комментарии

HighLoadОшибка "Записи регистра сведений стали неуникальными"#52 07.04.22 23:27
Регистр РедактируемыеРеквизитыКодаДоходаНДФЛ (БП 3 КОРП)
Одно измерение - СправочникСсылка.ВидыДоходовНДФЛ
В регистре всего 2 записи.
Дублей нет, а проблема есть.
Что делать то?
DevВывод иерархического справочника по столбцам (новый вид)#3 29.10.20 7:23
Картинки нарисованы для наглядности. Вложенность справочника и состав показателей может быть любой. Т.е. формироваться шапка должна динамически. Думаю для СКД это перебор. Пишу в обычном отчете.
В обычном отчете задача состоит из 2-ух этапов.
1-ый вывод шапки с объединением ячеек для групп.
2-ой транспонирование таблицы значений показателей, полученной выборкой из БД. (это СКД как раз умеет при табличной группировке)
DevВывод иерархического справочника по столбцам (новый вид)#1 28.10.20 11:33
Есть, например иерархический справочник показателей:


Он должен являться шапкой колонок некоторого отчета. Надо вывести шапку так:


Обычная табличная группировка СКД делает так:

но это совсем не то что требуется!

Вопрос: можно ли сделать требуемый вид на СКД?

Прикрепленные файлы:

Иерархический справочник.jpg
Нужно сделать так.jpg
СКД делает так.jpg
ПубликацииМастер-класс СППР#7 26.08.20 11:03
Где взять функциональную модель ERP. Как подключить ее в СППР 2.0?
ПубликацииВнесение изменения в формы с помощью расширений, без заимствования формы.#1 27.05.20 11:04
I. Динамически настраиваемое расширение формы.
1. При изменении данных на динамической форме - данные меняются и в основной форме!
Но при изменении данных в основной форме - на динамической форме остаются исходные данные.

2. После изменении данных на динамической форме, нажимаю зеленую кнопочку "обновить" получаю данные записанного в базу документа, а не данные основной формы.

II. Форма из конфигурации расширения
1. Не понял порядок работы и подключения:
- скопировал форма-шаблон;
- установил нужный тип основному реквизиту формы "объект"
- произведите необходимую настройку формы - не сделал. Что это?

При выборе этого режима отображается форма как в варианте I. Как увидеть отличия? и В чем суть разницы?
DevСКД: ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначени й против ГенераторМакетаКомпоновкиДанных#1 23.12.17 13:33
Вывожу отчет на СКД в ТЗ и в ТабличныйДокумент. Настройки одни и те-же.
Группировка в отчете Контрагент, Договор, ДокументРасчетов.
Проблема: при выводе в ТЗ поле ДокументРасчетов пустое, почему?

Код
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиКоллекции = КомпоновщикМакета.Выполнить(СКД, НовНастройки,,,Тип("ГенераторМакетаКомпоновкиДанны хДляКоллекцииЗначений"));
МакетКомпоновкиТаблДок = КомпоновщикМакета.Выполнить(СКД, НовНастройки,,,Тип("ГенераторМакетаКомпоновкиДанны х"));

ПроцессорКомпоновкиКоллекции = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиКоллекции.Инициализировать(Маке тКомпоновкиКоллекции);

ПроцессорКомпоновкиТаблДок = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиТаблДок.Инициализировать(МакетК омпоновкиТаблДок);

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



Т
Код
абДок = Новый ТабличныйДокумент;
ПроцессорВыводаВТаблДок = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличны йДокумент;
ПроцессорВыводаВТаблДок.УстановитьДокумент(ТабДок) ;
ПроцессорВыводаВТаблДок.Вывести(ПроцессорКомпоновк иТаблДок);   
ТабДок.Записать("C:\Users\muzychenko\Desktop\тз\ра сш.xls", ТипФайлаТабличногоДокумента.XLS);



Может ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений не умеет выводить составные поля?
DevУмный заказ ТМЦ для ТиС 9.2 с отправкой по электронной почте#5 29.06.13 23:18
1. Да, возможно забыл указать, что в справочнике Номенклатура добавлен реквизит 'Вес' - это вес базовой единицы брутто, т.е. вместе с упаковкой (например бутылка пива 0.5л весит 0.76кг, хотя вес базовй единицы (содержимого) при этом будет 0.5 кг (плотность содержимого считаем = 1)). Если для вас вес брутто не важен, действительно используйте Номенклатура.БазоваяЕдиница.Вес (его на практике заполняют чаще чем Номенклатура.ОсновнаяЕдиница.Вес). Дело в том что расчет тоннажа заказа важен для нас именно брутто т.к. заказ подбирается под комплектацию грузовой машины под 100% и т.о. если вы не учтете вес упаковки то заказанный товар у вас просто не поместится в результате в машину.
2. Группировка товара на поставщиков.
Менеджер анализирует группу ассортимента и он сам должен знать какому поставщику он относится. Тем более что как правило один и тот же товар можно заказывать у разных поставщиков в зависимости от обстоятельств и не нуждающихся в автоматизации.
3. Минимальный остаток, указываемый в карточке номенклатуры не учитывается. Так как в большинстве случаев существует фактор дискретности поставок. В момент фактического снижения запаса товара ниже некоторого минимального остатка сложно составить заказ т.к. скорее всего вы не уложитесь в минимальный объем заказа поставщика и/или график поставок. Задача менеджера сводится как раз к тому чтобы определить объем заказа таким образом чтобы не допустить возникновения такой ситуации. Для этого как раз есть параметр на форме 'коэффициент сезонности' и 'количество дней' на которое (при таком же среднем расходе как и в анализируемом периоде) должно хватить заказываемого товара, т.е. например увеличить срок на который планируется запастись товаром.
WMSИзменить валюту управленческого учета#13 27.09.12 15:55
Курс был, который им совсем не нужен. Зачем им оперативные отчеты в долларах?
Я так думаю, что все желательно делать в одной валюте, хотя действительно это не принципиально.
Если будет видимость Рубля, то какой это рубль на самом деле может и не так важно.
WMSСвертка кривой ТиС#17 27.09.12 15:51
(1) Drizer2000, Порядок ультрабыстрой самодельной свертки:

1. Делаем архив базы
2. Делаем индексацию базы
3. Сворачиваемый период должен быть проведен (под вопросом)
4. Сервис -> Параметры -> Рабоча дата = Ставим дату свертки
5. Запускаем саму свертку (пример см. ниже)
6. Устанавливаем Дату отчета = Дате свертки
7. Запускаем свертку (создает документы ввода остатков)
8. Убираем из документов основание в свернутом периоде (например возвраты)
9. Устанавливаем ТА на начало Века
10. Закрываем программу
11. Удаляем в каталоге с базой файлы rg*.* и ra*.* или запускаем "Удаление Движения регистров.bat"
12. Открываем программу, если спросит "Выполнить открытие периода?" отвечаем "Нет"
13. Помечаем на удаление Партии (можно грохнуть всю таблицу)
14. Можно пометить лишние элементы справочников - по желанию (чисточка)
15. Через Групповую обработку помечаем на удаление документы по дату свертки, кроме созданных документов ввода остатков
16. Проверяем все регистры на дату свертки между программами по ведомостями: По партиям, По Контрагентам (поставщикам и покупателям отдельно), По Кассе, По Банку, По Подотчетникам, По таре и пр.
17. Запускаем в конфигураторе "Тестирование и справление" +ставим сжатие базы

Пример свертки, по каждому регистру нужно написать функцию на подобе этой.

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНачала по ДатаНачала;
|Фирма = Регистр.ПартииНаличие.Фирма;
|МОЛ = Регистр.ПартииНаличие.МОЛ;
|Номенклатура = Регистр.ПартииНаличие.Номенклатура;
|ВидТМЦ = Регистр.ПартииНаличие.Номенклатура.ВидНоменклатуры;
|Количество = Регистр.ПартииНаличие.Количество;
|Сумма = Регистр.ПартииНаличие.СуммаУпр;
|Функция ИтогОстаток= КонОст(Количество);
|Функция ИтогСумма = КонОст(Сумма);
|Группировка Фирма;
|Группировка МОЛ;
|Группировка ВидТМЦ;
|Группировка Номенклатура без групп;";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1)=1 Цикл
Пока Запрос.Группировка(2)=1 Цикл
Склад = НайтиСкладПоМОЛу(Запрос.МОЛ);
ПоступлениеТовар = СоздатьОбъект("Документ.ОприходованиеТМЦ");
ПоступлениеТовар.Новый();
ПоступлениеТовар.ДатаДок= ДатаНачала;
ПоступлениеТовар.Фирма = Запрос.Фирма;
ПоступлениеТовар.Склад = Склад.ТекущийЭлемент();
ПоступлениеТовар.Валюта = Рубль.ТекущийЭлемент();
ПоступлениеТовар.Курс = 1;
Пока Запрос.Группировка(3)=1 Цикл
Пока Запрос.Группировка(4)=1 Цикл
ПоступлениеТовар.НоваяСтрока();
ПоступлениеТовар.Номенклатура = Запрос.Номенклатура;
ПоступлениеТовар.ВидТМЦ = Запрос.ВидТМЦ;
ПоступлениеТовар.Количество = Запрос.ИтогОстаток;
ПоступлениеТовар.Единица = Запрос.Номенклатура.БазоваяЕдиница;
ПоступлениеТовар.Коэффициент = 1;
ПоступлениеТовар.Сумма = Запрос.ИтогСумма;
глПересчетТаблЧасти(ПоступлениеТовар, "Сумма");
КонецЦикла;
КонецЦикла;
ПоступлениеТовар.Записать();
ПоступлениеТовар.Провести();
КонецЦикла;
КонецЦикла;

Этот фрагмент актуален тем, у кого плохой учет и разные хвосты висят по партиям. Результатом будет оприходован товар со средней ценой на дату свертки. Т.е. мы потеряем на время партионность учета, до тех пор пока оприходованный товар не истратится, но в целом никакой ошибки не будет в том числе и бухгалтерской т.к. за суммарная себестоимость будет именно такой-же. Таким же образом можно свернуть и остальные регистры, "закрывая" глаза на не актуальные измерения. Для оперативной базы, не выгружающейся в бухгалтерию такой способ самое оно!
WMSТиС 9.2 Свертка базы#26 27.09.12 15:09
Порядок ультрабыстрой самодельной свертки:

1. Делаем архив базы
2. Делаем индексацию базы
3. Сворачиваемый период должен быть проведен (под вопросом)
4. Сервис -> Параметры -> Рабоча дата = Ставим дату свертки
5. Запускаем саму свертку (пример см. ниже)
6. Устанавливаем Дату отчета = Дате свертки
7. Запускаем свертку (создает документы ввода остатков)
8. Убираем из документов основание в свернутом периоде (например возвраты)
9. Устанавливаем ТА на начало Века
10. Закрываем программу
11. Удаляем в каталоге с базой файлы rg*.* и ra*.* или запускаем "Удаление Движения регистров.bat"
12. Открываем программу, если спросит "Выполнить открытие периода?" отвечаем "Нет"
13. Помечаем на удаление Партии (можно грохнуть всю таблицу)
14. Можно пометить лишние элементы справочников - по желанию (чисточка)
15. Через Групповую обработку помечаем на удаление документы по дату свертки, кроме созданных документов ввода остатков
16. Проверяем все регистры на дату свертки между программами по ведомостями: По партиям, По Контрагентам (поставщикам и покупателям отдельно), По Кассе, По Банку, По Подотчетникам, По таре и пр.
17. Запускаем в конфигураторе "Тестирование и справление" +ставим сжатие базы

Пример свертки, по каждому регистру нужно написать функцию на подобе этой.

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаНачала по ДатаНачала;
|Фирма = Регистр.ПартииНаличие.Фирма;
|МОЛ = Регистр.ПартииНаличие.МОЛ;
|Номенклатура = Регистр.ПартииНаличие.Номенклатура;
|ВидТМЦ = Регистр.ПартииНаличие.Номенклатура.ВидНоменклатуры;
|Количество = Регистр.ПартииНаличие.Количество;
|Сумма = Регистр.ПартииНаличие.СуммаУпр;
|Функция ИтогОстаток= КонОст(Количество);
|Функция ИтогСумма = КонОст(Сумма);
|Группировка Фирма;
|Группировка МОЛ;
|Группировка ВидТМЦ;
|Группировка Номенклатура без групп;";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка(1)=1 Цикл
Пока Запрос.Группировка(2)=1 Цикл
Склад = НайтиСкладПоМОЛу(Запрос.МОЛ);
ПоступлениеТовар = СоздатьОбъект("Документ.ОприходованиеТМЦ");
ПоступлениеТовар.Новый();
ПоступлениеТовар.ДатаДок= ДатаНачала;
ПоступлениеТовар.Фирма = Запрос.Фирма;
ПоступлениеТовар.Склад = Склад.ТекущийЭлемент();
ПоступлениеТовар.Валюта = Рубль.ТекущийЭлемент();
ПоступлениеТовар.Курс = 1;
Пока Запрос.Группировка(3)=1 Цикл
Пока Запрос.Группировка(4)=1 Цикл
ПоступлениеТовар.НоваяСтрока();
ПоступлениеТовар.Номенклатура = Запрос.Номенклатура;
ПоступлениеТовар.ВидТМЦ = Запрос.ВидТМЦ;
ПоступлениеТовар.Количество = Запрос.ИтогОстаток;
ПоступлениеТовар.Единица = Запрос.Номенклатура.БазоваяЕдиница;
ПоступлениеТовар.Коэффициент = 1;
ПоступлениеТовар.Сумма = Запрос.ИтогСумма;
глПересчетТаблЧасти(ПоступлениеТовар, "Сумма");
КонецЦикла;
КонецЦикла;
ПоступлениеТовар.Записать();
ПоступлениеТовар.Провести();
КонецЦикла;
КонецЦикла;

Этот фрагмент актуален тем, у кого плохой учет и разные хвосты висят по партиям. Результатом будет оприходован товар со средней ценой на дату свертки. Т.е. мы потеряем на время партионность учета, до тех пор пока оприходованный товар не истратится, но в целом никакой ошибки не будет в том числе и бухгалтерской т.к. за суммарная себестоимость будет именно такой-же. Таким же образом можно свернуть и остальные регистры, "закрывая" глаза на не актуальные измерения. Для оперативной базы, не выгружающейся в бухгалтерию такой способ самое оно!