Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: маркировка товара с 2019 года

Доброго дня. Есть сейчас что-то конкретное? Как это будет выглядеть, для опта. Более менее толковое описание. =) Клеить и получать код на каждое изделие?
Новый з@гон. =(
Ответ: У нас производство одежды и постельного белья.
Вопрос: Поддержка ЗУП корп 2.5 в 2019

Доброго дня!

Подскажите, пожалуйста, есть ли информация по теме? Не могу найти.
Надо ли обновляться или ещё год протянем?
Ответ: () На партнерском форуме было сказано, что если и прекратят поддержку КОРПа, то минимум за год. Так что до 05.10.2019 точно поддержка будет
Вопрос: v7: О завершении в 2019 году поддержки программ «1С:Зарплата и кадры 7.7»

Вот и начало конца 7.7



На 7.7 остается один вариант переходить на Камин.

Надо изучать перенос с ЗиК-а на Камин )

П.С.: Так глядишь и бухгалтерию прикроют
Ответ: () :)))
Вопрос: v7: Поддержка ЗиК 7.7 без самой фирмы 1С...

Фирма 1С выпускала информацию, что с 2019 года ЗиК перестаёт поддерживать. Как можно юридически оформить полностью независимую от фирмы 1С поддержку это конфигурации чтобы поддерживать эту конфигурацию в промышленных масштабах всей страны официально без возможности самой 1С предъявлять законные претензии поддерживающему ?
Ответ: () Плюсую!
() Тебе нужна поддержка ЗиК 7.7 в рамках всей страны?! Зачем?!
Пример, 1С она не нужна с 2019 года.
Вопрос: v7: УСН 15% - списание товаров на собственные нужды, момент признания расходов

Доброго времени суток! Насколько понимаю с 2009 года для отнесения стоимости материалов на расходы достаточным условием является факт их оприходования от Поставщика и оплаты Поставщику. Насколько оно обязательно? То есть имеем право отнести сразу после поступления и оплаты, а можем и позднее по факту списания. Или же обязаны отнести в момент поступления и оплаты, а относить позднее по факту списания права не имеем?
Речь про товары для собственных нужд, когда часть товаров используются организацией для себя, их переводят из товаров в материалы, и затем списывают как материалы на прочие затраты по торговой деятельности. Корректно ли будет принимать на расходы стоимость таких материалов-товаров после их списания на затраты? Или нужно в первичном документе поступления дробить товары, выделяя из них материалы? Но ведь поступление может быть в предыдущем отчетном периоде, и исправить его уже проблематично.
Ответ: то есть изначально закупается партия товара, потом спустя некоторое время часть этого товара используют на собственные нужды, то есть перевод товар в материал и списывают на затраты.
Вопрос: Продажа комиссионного товара в бухгалтерии 3

Добрый день. Имеется бухгалтерия 3.0.38.55. В ней есть поступления на комиссию, которые учитываются на забалансовом счете 004.01. При том точно такой же товар поступает в организацию и как собственный тоже. В регистре сведений счет учета для этой номенклатуры заведен 41.02. При продаже соответственно подставляется счет 41.02. Есть ли какой-то способ, чтобы счет учета в продаже подставлялся правильно?  Полагаю, что он должен браться из партии, а не из счет учета номенклатуры.
Ответ: В ТиСе в свое время была принята простая идеология.
Если исходить из целей бизнеса, то выгоднее продавать свой товар - осовобождая ресурсы/склады/площади и получать доход/прибыль себе. То есть сначала работаем на себя - продаем свой товар, потом работаем на дядю - продаем товар комитента.
Это реализовывалось просто - сортировкой таблицы партий по статусу партии (купленный, комиссионный). И при этом нет никакой необходимости держать собственный и такой же комиссионнный товар на разных виртуальных складах, хотя в действительности товар находится на одном физическом складе.

потом такую сортировку таблицы партий - то ли отменили, то ли потеряли при очередной доработке в 1С... ;-)

хотя здесь я могу тупить за давностью лет.
но если надо реализовать описанную выше идеологию то тупо написать в константу порядок сортировки таблицы партий в ТиС и все... при особых хотелках это можно хоть к каждому клиенту или каждой сделке отдельно прикрутить - были бы ясные руки и голова...
Вопрос: Как в 1с Предприятие в номенклатуре не добавлялся товар с таким же именем?

Как в 1с Предприятие в номенклатуре не добавлялся товар с таким же именем?
Ответ:

Не по теме:

Сообщение от Yulunga
меня за такие слова гренка забанила на 3 года как-то
в смысле на 3 года? я всего-то на постоянной должности была года два)
у вас самый добрый модератор на форуме


Вопрос: Определить группу товаров, по которым ежедневная суммарная выручка непрерывно росла

Как это сделать???Есть у кого нибудь примеры?
На встроенном языке «1С:Предприятие» разработать отчет, который на основе анализа ИБ за весь период ведения учета в торговой точке определяет группу товаров, по которым ежедневная суммарная выручка день ото дня непрерывно росла на протяжении наиболее длительного отрезка времени. В группу может входить от одного товара до всех вместе взятых. Искомый отрезок времени должен состоять не менее, чем из двух дней.
Считается, что в ИБ представлены данные за каждый торговый день, но если данные о выручке за какую-то дату (даты) отсутствуют, то эти дни не считаются торговыми днями и не прерывают последовательности.
Ответ: Dgaizer, в УТ и в рознице есть что-то такое, может подойдет?
Кликните здесь для просмотра всего текста


ABC-XYZ анализ продаж


ABC-XYZ анализ продаж совмещает в себе 2 методики анализа:

АВС–анализ — это инструмент, который позволяет изучить товарный ассортимент за определённый период времени, определить рейтинг товаров по указанным критериям и выявить ту часть ассортимента, которая обеспечивает максимальный эффект. Дополнительно наш ABC анализ дает возможность выявить все товары, которые не продавались в выбранный период времени.
Отчет доступен по ссылке Маркетинг - Отчеты по маркетингу – Маркетинг - ABC-XYZ анализ продаж или Продажи – Отчеты по продажам – Показатели эффективности - ABC-XYZ анализ продаж.


· Группа А – очень важные товары, которые всегда должны присутствовать в ассортименте. Если в качестве параметра в анализе использовался объем продаж, то в данную группу входят лидеры продаж по количеству. Если в качестве параметра в анализе использовалась торговая наценка, то в данную группу входят наиболее прибыльные товары. Если в качестве параметра в анализе использовалась количество проданного товара, то в данную группу входят наиболее продаваемые товары. Обычно совокупный объем продаж группы А составляет максимальный % от общего объема продаж (по умолчанию - 80%, вы можете менять это значение).

· Группа В – товары средней степени важности. Обычно совокупный объем продаж группы В составляет большую часть от оставшегося % общего объема продаж (по умолчанию - 15%, вы можете менять это значение).

· Группа С – наименее важные товары, это претенденты на исключение из ассортимента и товары-новинки. Сортировка осуществляется по одному, выбранному показателю, значения групп двух остальных выводятся в отдельных колонках. Также возможна обратная сортировка, когда сначала отображаются товары группы С, потом - В и только в конце - А.

XYZ–анализ - это инструмент, позволяющий разделить продукцию по степени стабильности продаж и уровня колебаний потребления.

Метод данного анализа заключается в расчете каждой товарной позиции коэффициента вариации или колебания расхода. Этот коэффициент показывает отклонение расхода от среднего значения и выражается в процентах. В качестве параметра могут быть: объем продаж (количество), сумма продаж, сумма реализованной торговой наценки. Результатом XYZ –анализа является группировка товаров по трем категориям, исходя из стабильности их поведения:

· Группа "X" - товары, у которых коэффициент вариации не превышает 10% (вы можете менять это значение). Это товары, характеризующиеся стабильной величиной потребления и высокой степенью прогнозирования.

· Группа "Y" - товары, у которых коэффициент вариации находится в диапазоне от 10% до 25% (вы можете менять это значение). Это товары, характеризующиеся сезонными колебаниями и средними возможностями их прогнозирования.

· Группа "Z" - товары, у которых коэффициент вариации превышает 25% или расчет коэффициента невозможен по причине отсутствия. Это товары с нерегулярным потреблением и непредсказуемыми колебаниями, поэтому, спрогнозировать их спрос невозможно. Расчет коэффициента производится по следующему алгоритму: Сначала рассчитывается среднее значение продаж товара по какому-либо показателю за выбранный период. Потом для каждого дня периода считается разница между продажами текущего дня и средним значением продаж. Это значение возводится в квадрат, получая квадрат отклонения. Значения квадратов отклонений всех дней суммируются и делятся на количество дней, и из полученного значения извлекается квадратный корень. В результате получается среднеквадратичное отклонение. Коэффициент вариации является результатом деления среднеквадратичного отклонения на среднее значение продаж. Выражается в %.

Наилучший результат дает ABC-XYZ анализ товаров, схожих по характеру потребления. Отбор товара можно сделать по Виду номенклатуры или, более детальный – по Товарной категории, если установлена функциональная опция Управление ассортиментом по ссылке Администрирование - Маркетинг - Ассортимент.


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

Кликните здесь для просмотра всего текста
Отчет предназначен для классификации объектов:

Контрагент
Номенклатура
Основной менеджер покупателя
Классификация объектов производится по классам важности с точки зрения реализации товаров и услуг компании по данным управленческого учета.

Для каждого из 3-х классов (А, В и С) задаются свои относительные значения в процентах.

Считается что класс А должен приносить больше прибыли чем В и тем более больше чем С. Общепринятое распределение А-класс – 70%, В-класс – 25% и С-класс – 5%.

Пользователь может выбрать параметр для анализа из предложенного списка:

Сумма выручки
Сумма валовой прибыли
Количество проданных товаров
Вопрос: Не выгружаются Характеристики товара на сайт

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

КонецФункции
Данная функция объявляется в следующей процедуре:
Код:
Процедура ВыгрузитьОпции (Товар)       //Выгружаем Характеристики товара в Опции на сайте
              
                  Код = Формат(Число(ЗаменитьПрефиксы(Товар.Код)), "ЧГ=0");
                 ИмяОпции = "Цвет";
                ТипОпции = "radio";
                Значение = ХарактеристикиТовара(Товар); // Значение Характеристики (Название)
                Обязательная = "1";
                Количество = "0";      // Количество (по наличию)
                УчётНаСкладе = "0";
                ДопЦена = "0";
                ДопБаллы = "0";
                ДопВес = "0";

    Стр = oc1c.UploadOption(Код,ИмяОпции,ТипОпции,Значение,Обязательная,Количество,УчётНаСкладе,ДопЦена,ДопБаллы, ДопВес);
    Сообщить(Стр);

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

В итоге при обмене с базой Сам товар выгружается, а вместо характеристики добавляется строка с пустым значением Характеристики:
Помогите пожалуйста разобраться, что делаю не так?
Ответ:
У меня обработка работает нормально, единственное нужно правильно сформировать запрос на получение Наименования характеристик из Номенклатуры (Товара) - этих характеристик (в данном случае Цвет) у каждого товара много и они разные. Выходные данные должны быть в виде строки.
Вот этот самый запрос я и не могу сформулировать правильно
--- Объединение сообщений, 13 фев 2017 ---
Разработчики обработки, дали мне пример процедуры и функции (на примере выгрузки атрибутов),но нужно правильно сформировать запрос.
В 1с я не силен - а сами разработчики запросили 2000 за час работы, поэтому я пытаюсь сам это все сделать! Но как видно у меня не получается
Вопрос: 1С Бухгалтерия предприятия. Ошибка при записи документа "Поступление товаров и услуг": не заполнен счет Дт.

Добрый день, подскажите пожалуйста какие поля нужно заполнять при создании документа "ПоступлениеТоваровУслуг" Я создаю данный документ программно и когда пытаюсь записать, мне выдаёт следующую ошибку:

{ВнешняяОбработка.СозданиеСводныхДокументов.Форма.Форма.Форма(140)}: Ошибка при вызове метода контекста (Записать)
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
по причине:
Запись не верна! Не заполнен счет дебета (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

Причём выдаёт данную ошибку тогда, когда я пытаюсь создать документ на контрагента: "Конфетпром ООО". С контрагентом "Межрегионинтерснабсбыт ООО" таких проблем не возникает. Подозреваю что я не заполнил какое-то поле или поля.
Помогите плиз.


Сам код:
1C
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
&НаСервере
Процедура СозданиеДокумента()
    Счёт = 0;
    //Выбираю всех контрагентов
    ЗапросЭлементов = Новый Запрос;
    ЗапросЭлементов.Текст =
    "ВЫБРАТЬ
    |   Контрагенты.Ссылка
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.ЭтоГруппа";         
    Выборка = ЗапросЭлементов.Выполнить().Выбрать();
    //Прохожу циклом по каждому контрагенту
    
    Пока Выборка.Следующий() Цикл
        //Получаю контрагента       
        СсылканаКонтрагента = Выборка.Ссылка;                           
        
        //Делаю запрос на получение не проведённых документов определённого контрагента
        ЗапросДокументов = Новый Запрос;
        ЗапросДокументов.УстановитьПараметр("Контрагент", СсылканаКонтрагента); 
        ЗапросДокументов.УстановитьПараметр("ЛОЖЬ", ЛОЖЬ);
        ЗапросДокументов.Текст = "ВЫБРАТЬ
        |   ПоступлениеТоваровУслуг.Ссылка
        |ИЗ
        |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |   ПоступлениеТоваровУслуг.Контрагент = &Контрагент
        |   И ПоступлениеТоваровУслуг.Проведен = &ЛОЖЬ";            
        ВыборкаДок = ЗапросДокументов.Выполнить().Выбрать();
        //Получаю кол-во полученных документов
        Количество = ВыборкаДок.Количество();
        
        //Если  есть не проведённые документы то создаю новый документ 
        Если Количество > 0 Тогда 
            //Создаю новый документ на текущего контрагента 
            НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
            НовыйДокумент.Контрагент = СсылканаКонтрагента;
            НовыйДокумент.Дата = ТекущаяДата();
            НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
            
            Счёт = Счёт + Количество;               
            Пока ВыборкаДок.Следующий()Цикл
                Ссылканадок = ВыборкаДок;
                ТекущийДокумент = ВыборкаДок.Ссылка.ПолучитьОбъект();
                
                КоличествоСтрокТЧУслуг = ТекущийДокумент.Услуги.Количество();    
                Если КоличествоСтрокТЧУслуг > 0 Тогда 
                    //Записываю каждую строку из табличной части услуги в новый документ
                    Услуги = ТекущийДокумент.Услуги;                    
                    Для Каждого СтрокаТабЧасти Из Услуги Цикл
                        НоваяСтрокаТаблицы = НовыйДокумент.Услуги.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                                  
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.Содержание = СтрокаТабЧасти.Содержание;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.Субконто1 = СтрокаТабЧасти.Субконто1;
                        НоваяСтрокаТаблицы.Субконто2 = СтрокаТабЧасти.Субконто2;
                        НоваяСтрокаТаблицы.Субконто3 = СтрокаТабЧасти.Субконто3;
                        НоваяСтрокаТаблицы.СубконтоНУ1 =  СтрокаТабЧасти.СубконтоНУ1;
                        НоваяСтрокаТаблицы.СубконтоНУ2 =  СтрокаТабЧасти.СубконтоНУ2; 
                        НоваяСтрокаТаблицы.СубконтоНУ3 =  СтрокаТабЧасти.СубконтоНУ3;
                        НоваяСтрокаТаблицы.СчетЗатрат = СтрокаТабЧасти.СчетЗатрат;
                        НоваяСтрокаТаблицы.СчетЗатратНУ = СтрокаТабЧасти.СчетЗатратНУ;
                        НоваяСтрокаТаблицы.СчетУчетаНДС =СтрокаТабЧасти.СчетУчетаНДС;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                            
                    КонецЦикла;
                КонецЕсли;
                
                КоличествоСтрокТЧТоваров = ТекущийДокумент.Товары.Количество();
                Если КоличествоСтрокТЧТоваров > 0 Тогда
                    //Записываю каждый товар из табличной части услуги в новый документ
                    Товары = ТекущийДокумент.Товары;
                    Для Каждого СтрокаТабЧасти Из Товары Цикл
                        НоваяСтрокаТаблицы =  НовыйДокумент.Товары.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.ЕдиницаИзмерения = СтрокаТабЧасти.ЕдиницаИзмерения;  
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                      
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.СуммаНДС = СтрокаТабЧасти.СуммаНДС;
                        НоваяСтрокаТаблицы.Коэффициент = СтрокаТабЧасти.Коэффициент;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;  
                        НоваяСтрокаТаблицы.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                        
                    КонецЦикла;
                КонецЕсли;
                //Устанавливаю пометку на удаление текущий не проведённый документ
                ТекущийДокумент.УстановитьПометкуУдаления(Истина);   
            КонецЦикла;
            //Заполняю поля нового документа
            НовыйДокумент.СчетНаОплатуПоставщика = ТекущийДокумент.СчетНаОплатуПоставщика;
            НовыйДокумент.СпособЗачетаАвансов = ТекущийДокумент.СпособЗачетаАвансов;
            НовыйДокумент.СчетУчетаРасчетовПоАвансам = ТекущийДокумент.СчетУчетаРасчетовПоАвансам;
            НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ТекущийДокумент.СчетУчетаРасчетовСКонтрагентом;
            НовыйДокумент.ВалютаДокумента = ТекущийДокумент.ВалютаДокумента;
            НовыйДокумент.ДоговорКонтрагента = ТекущийДокумент.ДоговорКонтрагента;
            НовыйДокумент.НДСВключенВСтоимость= ТекущийДокумент.НДСВключенВСтоимость;
            НовыйДокумент.НДСНеВыделять = ТекущийДокумент.НДСНеВыделять;
            НовыйДокумент.Организация = ТекущийДокумент.Организация;
            НовыйДокумент.Ответственный = ТекущийДокумент.Ответственный;
            НовыйДокумент.Склад = ТекущийДокумент.Склад;
            НовыйДокумент.СуммаДокумента = ТекущийДокумент.СуммаДокумента;
            НовыйДокумент.КурсВзаиморасчетов = ТекущийДокумент.КурсВзаиморасчетов;
            НовыйДокумент.КратностьВзаиморасчетов =  ТекущийДокумент.КратностьВзаиморасчетов;
            НовыйДокумент.СпособЗачетаАвансов =  ТекущийДокумент.СпособЗачетаАвансов;
            
            //Свёртывание таблицы услуг
            КоличествоСтрокТЧУслуг = НовыйДокумент.Услуги.Количество();
            Если КоличествоСтрокТЧУслуг > 3 Тогда
                //Свёртывание табличной части услуг
                Свёртывание = НовыйДокумент.Услуги.Выгрузить();
                Свёртывание.Свернуть("Номенклатура","Цена, СтавкаНДС");
                НовыйДокумент.Услуги.Загрузить(Свёртывание);
            КонецЕсли;
            
            //Свёртывание таблицы товаров
            КоличествоСтрокТЧТоваров = НовыйДокумент.Товары.Количество();
            Если КоличествоСтрокТЧТоваров > 3 Тогда  
                //Свёртывание табличной части товаров
                Свёртывание = НовыйДокумент.Товары.Выгрузить();
                Свёртывание.Свернуть("Номенклатура", "Цена, СтавкаНДС");
                НовыйДокумент.Товары.Загрузить(Свёртывание);
            КонецЕсли;
            
            //Провожу созданный документ
            НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);    
        КонецЕсли;          
    КонецЦикла;  
КонецПроцедуры
Ответ: Всё, я разобрался, всё дело было в свёртывании, я указал не все нужные поля в методе свёртывания и после выполнения метода данные терялись и вылезало сообщение о том что не все поля заполнены.

Вот рабочий код:

1C
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
&НаСервере
Процедура СозданиеДокумента()
    Счёт = 0;
    //Выбираю всех контрагентов
    ЗапросЭлементов = Новый Запрос;
    ЗапросЭлементов.Текст =
    "ВЫБРАТЬ
    |   Контрагенты.Ссылка
    |ИЗ
    |   Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    НЕ Контрагенты.ЭтоГруппа";         
    Выборка = ЗапросЭлементов.Выполнить().Выбрать();
    //Прохожу циклом по каждому контрагенту
    
    Пока Выборка.Следующий() Цикл
        //Получаю контрагента       
        СсылканаКонтрагента = Выборка.Ссылка;                           
        
        //Делаю запрос на получение не проведённых документов определённого контрагента
        ЗапросДокументов = Новый Запрос;
        ЗапросДокументов.УстановитьПараметр("Контрагент", СсылканаКонтрагента); 
        ЗапросДокументов.УстановитьПараметр("ЛОЖЬ", ЛОЖЬ);
        ЗапросДокументов.Текст = "ВЫБРАТЬ
        |   ПоступлениеТоваровУслуг.Ссылка
        |ИЗ
        |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |   ПоступлениеТоваровУслуг.Контрагент = &Контрагент
        |   И ПоступлениеТоваровУслуг.Проведен = &ЛОЖЬ";            
        ВыборкаДок = ЗапросДокументов.Выполнить().Выбрать();
        //Получаю кол-во полученных документов
        Количество = ВыборкаДок.Количество();
        
        //Если  есть не проведённые документы то создаю новый документ 
        Если Количество > 0 Тогда 
            //Создаю новый документ на текущего контрагента 
            НовыйДокумент = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
            НовыйДокумент.Контрагент = СсылканаКонтрагента;
            НовыйДокумент.Дата = ТекущаяДата();
            НовыйДокумент.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
            
            Счёт = Счёт + Количество;               
            Пока ВыборкаДок.Следующий()Цикл
                Ссылканадок = ВыборкаДок;
                ТекущийДокумент = ВыборкаДок.Ссылка.ПолучитьОбъект();
                
                КоличествоСтрокТЧУслуг = ТекущийДокумент.Услуги.Количество();    
                Если КоличествоСтрокТЧУслуг > 0 Тогда 
                    //Записываю каждую строку из табличной части услуги в новый документ
                    Услуги = ТекущийДокумент.Услуги;                    
                    Для Каждого СтрокаТабЧасти Из Услуги Цикл
                        НоваяСтрокаТаблицы = НовыйДокумент.Услуги.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                                  
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.Содержание = СтрокаТабЧасти.Содержание;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.Субконто1 = СтрокаТабЧасти.Субконто1;
                        НоваяСтрокаТаблицы.Субконто2 = СтрокаТабЧасти.Субконто2;
                        НоваяСтрокаТаблицы.Субконто3 = СтрокаТабЧасти.Субконто3;
                        НоваяСтрокаТаблицы.СубконтоНУ1 =  СтрокаТабЧасти.СубконтоНУ1;
                        НоваяСтрокаТаблицы.СубконтоНУ2 =  СтрокаТабЧасти.СубконтоНУ2; 
                        НоваяСтрокаТаблицы.СубконтоНУ3 =  СтрокаТабЧасти.СубконтоНУ3;
                        НоваяСтрокаТаблицы.СчетЗатрат = СтрокаТабЧасти.СчетЗатрат;
                        НоваяСтрокаТаблицы.СчетЗатратНУ = СтрокаТабЧасти.СчетЗатратНУ;
                        НоваяСтрокаТаблицы.СчетУчетаНДС =СтрокаТабЧасти.СчетУчетаНДС;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                            
                    КонецЦикла;
                КонецЕсли;
                
                КоличествоСтрокТЧТоваров = ТекущийДокумент.Товары.Количество();
                Если КоличествоСтрокТЧТоваров > 0 Тогда
                    //Записываю каждый товар из табличной части услуги в новый документ
                    Товары = ТекущийДокумент.Товары;
                    Для Каждого СтрокаТабЧасти Из Товары Цикл
                        НоваяСтрокаТаблицы =  НовыйДокумент.Товары.Добавить();
                        НоваяСтрокаТаблицы.Номенклатура = СтрокаТабЧасти.Номенклатура;
                        НоваяСтрокаТаблицы.ЕдиницаИзмерения = СтрокаТабЧасти.ЕдиницаИзмерения;  
                        НоваяСтрокаТаблицы.Количество = СтрокаТабЧасти.Количество;
                        НоваяСтрокаТаблицы.Цена = СтрокаТабЧасти.Цена;                      
                        НоваяСтрокаТаблицы.Сумма = НоваяСтрокаТаблицы.Цена * НоваяСтрокаТаблицы.Количество;
                        НоваяСтрокаТаблицы.СуммаНДС = СтрокаТабЧасти.СуммаНДС;
                        НоваяСтрокаТаблицы.Коэффициент = СтрокаТабЧасти.Коэффициент;
                        НоваяСтрокаТаблицы.ОтражениеВУСН = СтрокаТабЧасти.ОтражениеВУСН;
                        НоваяСтрокаТаблицы.СпособУчетаНДС = СтрокаТабЧасти.СпособУчетаНДС;
                        НоваяСтрокаТаблицы.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;  
                        НоваяСтрокаТаблицы.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;
                        НоваяСтрокаТаблицы.СтавкаНДС = СтрокаТабЧасти.СтавкаНДС;                        
                    КонецЦикла;
                КонецЕсли;
                //Устанавливаю пометку на удаление текущий не проведённый документ
                ТекущийДокумент.УстановитьПометкуУдаления(Истина);   
            КонецЦикла;
            //Заполняю поля нового документа
            НовыйДокумент.СчетНаОплатуПоставщика = ТекущийДокумент.СчетНаОплатуПоставщика;
            НовыйДокумент.СпособЗачетаАвансов = ТекущийДокумент.СпособЗачетаАвансов;
            НовыйДокумент.СчетУчетаРасчетовПоАвансам = ТекущийДокумент.СчетУчетаРасчетовПоАвансам;
            НовыйДокумент.СчетУчетаРасчетовСКонтрагентом = ТекущийДокумент.СчетУчетаРасчетовСКонтрагентом;
            НовыйДокумент.ВалютаДокумента = ТекущийДокумент.ВалютаДокумента;
            НовыйДокумент.ДоговорКонтрагента = ТекущийДокумент.ДоговорКонтрагента;
            НовыйДокумент.НДСВключенВСтоимость= ТекущийДокумент.НДСВключенВСтоимость;
            НовыйДокумент.НДСНеВыделять = ТекущийДокумент.НДСНеВыделять;
            НовыйДокумент.Организация = ТекущийДокумент.Организация;
            НовыйДокумент.Ответственный = ТекущийДокумент.Ответственный;
            НовыйДокумент.Склад = ТекущийДокумент.Склад;
            НовыйДокумент.СуммаДокумента = ТекущийДокумент.СуммаДокумента;
            НовыйДокумент.КурсВзаиморасчетов = ТекущийДокумент.КурсВзаиморасчетов;
            НовыйДокумент.КратностьВзаиморасчетов =  ТекущийДокумент.КратностьВзаиморасчетов;
            НовыйДокумент.СпособЗачетаАвансов =  ТекущийДокумент.СпособЗачетаАвансов;
            
            //Свёртывание таблицы услуг
            КоличествоСтрокТЧУслуг = НовыйДокумент.Услуги.Количество();
            Если КоличествоСтрокТЧУслуг > 1 Тогда
                НовыйДокумент.Услуги.Свернуть("Номенклатура, ОтражениеВУСН, СпособУчетаНДС, СтавкаНДС, СчетУчета, СчетУчетаНДС, Цена", "Количество, Сумма");   
            КонецЕсли;
            
            //Свёртывание таблицы товаров 
            КоличествоСтрокТЧТоваров = НовыйДокумент.Товары.Количество();
            Если КоличествоСтрокТЧТоваров > 1 Тогда                 
                НовыйДокумент.Товары.Свернуть("Номенклатура, ОтражениеВУСН, СпособУчетаНДС, СтавкаНДС, СчетУчета, СчетУчетаНДС, Цена", "Количество, Сумма");
            КонецЕсли;
            //Провожу созданный документ
            НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);    
        КонецЕсли;          
    КонецЦикла;  
КонецПроцедуры