Имя: Пароль:
1C
1С v8
Розница 1.0 При вводе на основании в новом документе строчки сами меняют порядок
,
0 pers200590
 
15.01.14
08:03
Здравствуйте , форумчане
Имеется конфигурация Розница 1.0
При создании документа Установка цен номенклатуры на основании документа Поступление товаров меняется положение строк в документе УставновкаЦенНоменклатуры. Если в документе ПоступлениеТоваров позиция № 1 была Сковорода , то при вводе на сновании документа УстановкаЦенНоменклатуры Сковорода уже 5 позиция. Объясните где в коде можно поменять сортировку. Чтобы она была в двух документах одинаковая.
1 pers200590
 
15.01.14
08:04
Знаю, что надо смотреть в процедуре ОбработкаЗаполнения.
2 pers200590
 
15.01.14
08:04
Процедура ОбработкаЗаполнения(Основание) Экспорт
    
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда
        
        ТипЦен = Неопределено;        
        ВвестиЗначение(ТипЦен, "Введите тип цен:", Тип("СправочникСсылка.ТипыЦенНоменклатуры"));
        
        Если ТипЦен = Неопределено Тогда
            
            Запрос = Новый Запрос("ВЫБРАТЬ
                                  |    Товары.Номенклатура КАК Номенклатура,
                                  |    Товары.ХарактеристикаНоменклатуры,
                                  |    МАКСИМУМ(ВЫБОР
                                  |            КОГДА ЕСТЬNULL(Товары.ЕдиницаИзмерения.Коэффициент, 0) <> 0
                                  |                ТОГДА Товары.Цена * Товары.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Товары.ЕдиницаИзмерения.Коэффициент
                                  |            ИНАЧЕ Товары.Цена
                                  |        КОНЕЦ) КАК Цена,
                                  |    МИНИМУМ (Товары.НомерСтроки) КАК НомерСтроки,
                                  |    Товары.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения
                                  |ИЗ
                                  |    Документ.ПоступлениеТоваров.Товары КАК Товары
                                  |ГДЕ
                                  |    Товары.Ссылка = &ДокументПоступления
                                  |
                                  |СГРУППИРОВАТЬ ПО
                                  |    Товары.Номенклатура,
                                  |    Товары.ХарактеристикаНоменклатуры,
                                  |    Товары.Номенклатура.ЕдиницаХраненияОстатков,
                                  |    Товары.НомерСтроки
                                  |
                                  |УПОРЯДОЧИТЬ ПО
                                  |    НомерСтроки");
            
            Запрос.УстановитьПараметр("ДокументПоступления", Основание);
            РезультатЗапроса = Запрос.Выполнить();
            Если НЕ РезультатЗапроса.Пустой() Тогда
                Товары.Загрузить(РезультатЗапроса.Выгрузить());
            КонецЕсли;    
                                    
        Иначе
            
            ДокументОснование = Основание;
            НовСтрокаТипыЦен        = ТипыЦен.Добавить();
            НовСтрокаТипыЦен.ТипЦен = ТипЦен;            
            ЗаполнитьТовары("ЗаполнитьИзПоступленияТоваров");            
            
        КонецЕсли;
            
    КонецЕсли;
    
КонецПроцедуры
3 pers200590
 
15.01.14
08:05
роцедура ЗаполнитьТовары(РежимЗаполнения = "ЗаполнитьИзПоступленияТоваров") Экспорт
    
    Если РежимЗаполнения = "ЗаполнитьИзПоступленияТоваров" Тогда
        
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("ТипЦен", ТипыЦен[0].ТипЦен);
        Запрос.УстановитьПараметр("ДокументПоступления", ДокументОснование);
        Запрос.УстановитьПараметр("Дата", ДокументОснование.Дата);
        Запрос.УстановитьПараметр("ДокументУстановкиЦен", Ссылка);
    
        Запрос.Текст = "ВЫБРАТЬ
        |    ДанныеДляРасчетов.Номенклатура,
        |    ДанныеДляРасчетов.ХарактеристикаНоменклатуры,
        |    ДанныеДляРасчетов.Дата,
        |    ДанныеДляРасчетов.ДокументУстановкиЦен,
        |    ВЫБОР
        |        КОГДА ДанныеДляРасчетов.СебестоимостьПрошлойЗакупки = 0
        |                ИЛИ ДанныеДляРасчетов.ЦенаВРозницеСтарая = 0
        |            ТОГДА 0
        |        ИНАЧЕ (ДанныеДляРасчетов.ЦенаВРозницеСтарая / ДанныеДляРасчетов.СебестоимостьПрошлойЗакупки - 1) * 100
        |    КОНЕЦ КАК Наценка,
        |    ДанныеДляРасчетов.ЦенаВРозницеСтарая,
        |    ДанныеДляРасчетов.Себестоимость,
        |    ДанныеДляРасчетов.СебестоимостьПрошлойЗакупки,
        |    ДанныеДляРасчетов.ЕдиницаИзмерения КАК Единица0
        |ИЗ
        |    (ВЫБРАТЬ
        |        ПодЗапрос.Номенклатура КАК Номенклатура,
        |        ПодЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |        ЕСТЬNULL(ЦеныНоменклатурыСХарактеристиками.Цена, ЕСТЬNULL(ЦеныНоменклатурыБезХарактеристик.Цена, 0)) КАК ЦенаВРозницеСтарая,
        |        ПодЗапрос.Дата КАК Дата,
        |        ПодЗапрос.Ссылка КАК ДокументУстановкиЦен,
        |        ЕСТЬNULL(ТоварыПрошлойЗакупки.СебестоимостьПрошлойЗакупки, 0) КАК СебестоимостьПрошлойЗакупки,
        |        ПодЗапрос.Себестоимость КАК Себестоимость,
        |        ПодЗапрос.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения
        |    ИЗ
        |        (ВЫБРАТЬ
        |            ПоступлениеТоваров.Номенклатура КАК Номенклатура,
        |            ПоступлениеТоваров.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |            МАКСИМУМ(ВЫБОР
        |                    КОГДА ЕСТЬNULL(ПоступлениеТоваров.ЕдиницаИзмерения.Коэффициент, 0) <> 0
        |                        ТОГДА ПоступлениеТоваров.Цена * ПоступлениеТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ПоступлениеТоваров.ЕдиницаИзмерения.Коэффициент
        |                    ИНАЧЕ ПоступлениеТоваров.Цена
        |                КОНЕЦ) КАК Себестоимость,
        |            ДокументПоступлениеТоваров.Ссылка КАК Ссылка,
        |            ДокументПоступлениеТоваров.Дата КАК Дата
        |        ИЗ
        |            Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваров
        |                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ДокументПоступлениеТоваров
        |                ПО (ДокументПоступлениеТоваров.Ссылка = ПоступлениеТоваров.Ссылка)
        |        ГДЕ
        |            ПоступлениеТоваров.Ссылка = &ДокументПоступления
        |        
        |        СГРУППИРОВАТЬ ПО
        |            ПоступлениеТоваров.Номенклатура,
        |            ПоступлениеТоваров.ХарактеристикаНоменклатуры,
        |            ДокументПоступлениеТоваров.Ссылка,
        |            ДокументПоступлениеТоваров.Дата) КАК ПодЗапрос
        |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
        |                ЦеныНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |                ЦеныНоменклатуры.Цена КАК Цена
        |            ИЗ
        |                РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |                        &Дата,
        |                        ТипЦен = &ТипЦен
        |                            И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) " + ?(ЭтоНовый(),"", " И Регистратор <> &ДокументУстановкиЦен") + ") КАК ЦеныНоменклатуры) КАК ЦеныНоменклатурыБезХарактеристик
        |            ПО ПодЗапрос.Номенклатура = ЦеныНоменклатурыБезХарактеристик.Номенклатура
        |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
        |                ЦеныНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |                ЦеныНоменклатуры.Цена КАК Цена
        |            ИЗ
        |                РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |                        &Дата,
        |                        ТипЦен = &ТипЦен
        |                            И (НЕ ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) " + ?(ЭтоНовый(),"", " И Регистратор <> &ДокументУстановкиЦен") + ") КАК ЦеныНоменклатуры) КАК ЦеныНоменклатурыСХарактеристиками
        |            ПО ПодЗапрос.Номенклатура = ЦеныНоменклатурыСХарактеристиками.Номенклатура
        |                И ПодЗапрос.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСХарактеристиками.ХарактеристикаНоменклатуры
        |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                ПрошлаяЗакупка.Номенклатура КАК Номенклатура,
        |                ПрошлаяЗакупка.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |                ЦеныПрошлойЗакупки.СебестоимостьПрошлойЗакупки КАК СебестоимостьПрошлойЗакупки
        |            ИЗ
        |                (ВЫБРАТЬ
        |                    ТоварыПрошлойЗакупки.Номенклатура КАК Номенклатура,
        |                    ТоварыПрошлойЗакупки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |                    МАКСИМУМ(ТоварыПрошлойЗакупки.Ссылка.Дата) КАК Дата,
        |                    МАКСИМУМ(ТоварыПрошлойЗакупки.Ссылка) КАК Ссылка
        |                ИЗ
        |                    Документ.ПоступлениеТоваров.Товары КАК ТоварыПрошлойЗакупки
        |                ГДЕ
        |                    ТоварыПрошлойЗакупки.Ссылка <> &ДокументПоступления
        |                    И ТоварыПрошлойЗакупки.Ссылка.Проведен
        |                    И ТоварыПрошлойЗакупки.Ссылка.Дата <= &Дата
        |                
        |                СГРУППИРОВАТЬ ПО
        |                    ТоварыПрошлойЗакупки.Номенклатура,
        |                    ТоварыПрошлойЗакупки.ХарактеристикаНоменклатуры) КАК ПрошлаяЗакупка
        |                    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |                        МАКСИМУМ(ВЫБОР
        |                                КОГДА ЦеныПрошлойЗакупки.ЕдиницаИзмерения.Коэффициент <> 0
        |                                    ТОГДА ЦеныПрошлойЗакупки.Цена * ЦеныПрошлойЗакупки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныПрошлойЗакупки.ЕдиницаИзмерения.Коэффициент
        |                                ИНАЧЕ ЦеныПрошлойЗакупки.Цена
        |                            КОНЕЦ) КАК СебестоимостьПрошлойЗакупки,
        |                        ЦеныПрошлойЗакупки.Номенклатура КАК Номенклатура,
        |                        ЦеныПрошлойЗакупки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        |                        ДокументПоступлениеТоваров1.Дата КАК ДатаДокумента,
        |                        ДокументПоступлениеТоваров1.Ссылка КАК Ссылка
        |                    ИЗ
        |                        Документ.ПоступлениеТоваров.Товары КАК ЦеныПрошлойЗакупки
        |                            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваров КАК ДокументПоступлениеТоваров1
        |                            ПО (ДокументПоступлениеТоваров1.Ссылка = ЦеныПрошлойЗакупки.Ссылка)
        |                    ГДЕ
        |                        ЦеныПрошлойЗакупки.Ссылка <> &ДокументПоступления
        |                        И ДокументПоступлениеТоваров1.Дата <= &Дата
        |                    
        |                    СГРУППИРОВАТЬ ПО
        |                        ДокументПоступлениеТоваров1.Ссылка,
        |                        ЦеныПрошлойЗакупки.Номенклатура,
        |                        ЦеныПрошлойЗакупки.ХарактеристикаНоменклатуры,
        |                        ДокументПоступлениеТоваров1.Дата) КАК ЦеныПрошлойЗакупки
        |                    ПО ПрошлаяЗакупка.Номенклатура = ЦеныПрошлойЗакупки.Номенклатура
        |                        И ПрошлаяЗакупка.ХарактеристикаНоменклатуры = ЦеныПрошлойЗакупки.ХарактеристикаНоменклатуры
        |                        И ПрошлаяЗакупка.Дата = ЦеныПрошлойЗакупки.ДатаДокумента
        |                        И ПрошлаяЗакупка.Ссылка = ЦеныПрошлойЗакупки.Ссылка) КАК ТоварыПрошлойЗакупки
        |            ПО ПодЗапрос.Номенклатура = ТоварыПрошлойЗакупки.Номенклатура
        |                И ПодЗапрос.ХарактеристикаНоменклатуры = ТоварыПрошлойЗакупки.ХарактеристикаНоменклатуры) КАК ДанныеДляРасчетов";
        
        ТаблицаТоваровПоступлениеТоваров = Запрос.Выполнить().Выгрузить();  
        
    КонецЕсли;    
    
КонецПроцедуры
4 Wobland
 
15.01.14
08:07
а какая сортировка в документе-основании?
5 Wobland
 
15.01.14
08:10
и почему бы не упорядочить по номер строки?
6 Ярус
 
15.01.14
08:10
а кем там тс трудится? если прог то такой вопрос не должен возникать
7 pers200590
 
15.01.14
08:11
Немогу просто разобраться
8 pers200590
 
15.01.14
08:12
Какая сортировка в документе-основании также не известно
9 Ярус
 
15.01.14
08:12
в запросе из 3 добавь поле номерстроки из поступления и упорядочивай по нему
10 Wobland
 
15.01.14
08:13
(8) её там нет
11 pers200590
 
15.01.14
08:13
и сортировка по номеруСтроки стоит в (2)
12 Wobland
 
15.01.14
08:14
(11) а после неё исполняется (3)
13 Wobland
 
15.01.14
08:14
(12) ну не совсем после ;)
14 Ярус
 
15.01.14
08:14
(11) уууууу, хочешь поговрить об этом?
15 pers200590
 
15.01.14
08:15
блин вообще запутали
16 Wobland
 
15.01.14
08:16
(15) с начала. предлагаю упорядочить по номер строки
17 Ярус
 
15.01.14
08:18
(15) что непонятно в (9)?
18 Wobland
 
15.01.14
08:20
не так. предлагаю упорядочивать по алфавиту мышью в обоих документах
19 Ярус
 
15.01.14
08:20
(18) +100, для них самое то будет
20 pers200590
 
15.01.14
08:21
(17) не работает ничего не изменилось
21 pers200590
 
15.01.14
08:21
(18) неудобно
22 Wobland
 
15.01.14
08:26
(21) ну тогда (5), (9), (16), (17)
23 pers200590
 
15.01.14
08:27
(22) ок. как правильно упорядочить по НомеруСтроки?
24 pers200590
 
15.01.14
08:28
Научите меня
25 Wobland
 
15.01.14
08:28
а что за одинокая ТаблицаТоваровПоступлениеТоваров?
26 pers200590
 
15.01.14
08:29
(25)даже не знаю
27 Ярус
 
15.01.14
08:30
(26) дальше в коде что с ней происходит, "даже не знаю"
28 Wobland
 
15.01.14
08:30
(27) конец процедуры с ней происходит
29 Wobland
 
15.01.14
08:32
> ТипЦен = Неопределено
а вот эта хрень всегда ложью будет.
короче, нужен программист
30 Ярус
 
15.01.14
08:32
(28) опа точняк
31 Wobland
 
15.01.14
08:33
(29) а может и не будет
32 Ярус
 
15.01.14
08:34
(31) если вместо ввода типа цен нажать эскейп то будет истина
33 Wobland
 
15.01.14
08:36
(32) а что в переменную попадёт при отказе от ввода? плин, никогда так не делал
34 pers200590
 
15.01.14
08:37
скажи как что делать ?
35 Wobland
 
15.01.14
08:37
(34) тут надо доделывать то, что не доделано, и только потом задумываться о сортировке
36 Ярус
 
15.01.14
08:39
берм 1сника 1 штука, берём бубен 1 штука, берем водка 1 литр, и шаманим, шаманим, если не помогло то водка 2 литр
37 Wobland
 
15.01.14
08:41
(36) на третьей итерации будут 3 1сника, 3 бубна, 5 литров. на четвёртой 7 литров на 4х.. лучше в попытке делать, т.к. удельное количество водки растёт
38 Ярус
 
15.01.14
08:44
(37) в моем цикле увеличивается только водка, ну и условия выхода: либо 1сник загнулся, либо база, либо найдено решение, в случае с тс, первые два условия более вероятны
39 pers200590
 
15.01.14
15:16
а если серьездно
40 sergio78
 
18.01.14
19:27
Извиняюсь, что не в тему, хотел спросить у pers200590, видел через поисковик его посты про проблему возможность печати приходной накладной с розничными ценами в ут11, была ли решена проблема???
41 pers200590
 
20.01.14
06:29
(40) да проблема была решена
42 sergio78
 
22.01.14
02:55
(41) каким образом если не секрет???
43 Dethmont
 
22.01.14
03:08
(42) Он базу удалил - нет базы нет проблем!
44 pers200590
 
24.01.14
14:11
(42) Создал ВПФ с розничными ценами