Имя: Пароль:
1C
1C 7.7
v7: Неправильно вводится документ списание
,
0 antoha86
 
11.03.16
11:25
Здравствуйте! Подскажите, пожалуйста, что делать при вводе документа списание на основании инвентаризации, в строку количество ставиться не разница а фактическое количество? Спасибо!
1 ДенисЧ
 
11.03.16
11:25
Вариантов всего два...
Или смотреть в отладчик, или звать пограммиста...
2 Масянька
 
11.03.16
11:28
(0) А о какой разнице идет речь?
3 ДенисЧ
 
11.03.16
11:28
(2) Какая тебе разница, какая у него разница?
4 Злопчинский
 
11.03.16
11:59
(0) Смотреть внимательно! В типовой конфигурации - если вы не лазили в свою кривыми ручонками - все вводится правильно!
включить мозг - тоже полезно
По Учету=18, По Факту=9, К списанию=9 - я вот почему-то уверен, что К списанию - это не фактическое количество, а разница- и это большая разница...
5 DDwe
 
11.03.16
12:09
(3) Вам есть еще разница до разницы его разницы?
6 DDwe
 
11.03.16
12:09
(4) И у вас разница )))
7 Масянька
 
11.03.16
12:17
(4) Сначала нужно выяснить, что автор имеет ввиду под "разницей"...
8 antoha86
 
11.03.16
12:35
Многоуважаемые, гости! Под разницей понимается столбец с отклонением
9 Масянька
 
11.03.16
12:42
(8) Во-первых, не гости.
Во-вторых, поддержу (4) - все арбайтен.

1. Конфа типовая?
2. Как делаешь док-т списания?
10 antoha86
 
11.03.16
12:46
(9) Примите извинения гостя, за гостей... Конфа типовая, документ списания вводится на основании документа инвентаризации, спасибо!
11 ДенисЧ
 
11.03.16
12:47
А вот тут начинается полное ЛПП.
Давай картинки...
12 antoha86
 
11.03.16
12:48
(9) Единственное изменения было внесено в документ списания, что бы его можно было вводить на основании, документа поступления ТМЦ
13 Масянька
 
11.03.16
12:48
(10) Принято.
Все должно работать.
Смотри: склады, остатки (желательно по партиям). А я бы сначала залезла в код.
14 Масянька
 
11.03.16
12:49
(12) Уже теплее...
Вот и смотри обработку ввода на основании в док-те списания.
15 ДенисЧ
 
11.03.16
12:50
Внезапно...
Пятница, видать...
@Мясянька и полезет в код???
16 antoha86
 
11.03.16
12:53
17 antoha86
 
11.03.16
12:54
18 ДенисЧ
 
11.03.16
12:55
(17) И что бы можем отсюда увидеть? Не исходного документа, не регистров...
19 Масянька
 
11.03.16
12:59
(16) (17) Смотри в коде.
Судя по всему, накосячили именно там.
21 antoha86
 
11.03.16
13:02
Код документа списание, не вижу ничего со словом ввод на основании
22 Злопчинский
 
11.03.16
13:02
Рисунки между собой несвязаны или ошибка в кривых ручках.
если подставляется фактическое количество - почему в списании только три строки, а не семь?
23 Масянька
 
11.03.16
13:03
(21) Ты меня пугаешь...

Заполнение док-ов присходит в модуле формы документа.
24 Злопчинский
 
11.03.16
13:04
(20) Указанный код не имеет никакого отношения
кидай в скайп Zlopun ид и пароль к тиму (10 или 11 - укажи какой) - только оперативно. мало времени. Залезем посмотрим вместе что у вас там накосяпорено.
жду не более 10 мин
25 Злопчинский
 
11.03.16
13:04
(23) все-таки год сказывается, ничего не сделать... ;-)
26 antoha86
 
11.03.16
13:05
(22) в этом и есть проблема, я сделал копию самого документа инвентаризация, и затем введеного документа списание
27 Злопчинский
 
11.03.16
13:05
Совет простой - взять типовую как болванку и восстановить исходный код списания тмц.
28 Масянька
 
11.03.16
13:06
(25) Читая и соображаю - о каком годе идет речь... :))))))

Куда катится мир...
29 Масянька
 
11.03.16
13:08
(26) Слышь, поколение пепси...
Покажи код ЗаполнениеПоДокументуОснованию (повторяю - модуль формы документа).
30 Злопчинский
 
11.03.16
13:09
(28) с тех пор как мир стал шарообразным он стал катиться устойчивее и гораздо быстрее!!!
31 Масянька
 
11.03.16
13:10
(30) О, как...
Вернуть слонов на черепахе - не вариант? :))))
32 antoha86
 
11.03.16
13:10
//******************************************************************************
// ЗаполнениеПоДокументуОснованию()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//
// Описание:
//  Производит заполнение документа по документу  - основанию.
//
Функция ЗаполнениеПоДокументуОснованию()
    Перем СписанныеКоличества;
    
    Если ДокОснование.Выбран()=0 Тогда
        Возврат "Документ - основание не выбран!";
    КонецЕсли;
    
    Если (ДокОснование.Вид() <> "ИнвентаризацияТМЦ") Тогда
        //Возврат "Неверный вид документа - основания!";
    КонецЕсли; // вид ДокОснования
        
    // сформируем список товаров,
    ТекстЗапроса = "//{{ЗАПРОС(ПредСписание)
    |Период с '01.01.1980' по ДатаДок;
    |Без итогов;
    |Основание = Документ.СписаниеТМЦ.ДокОснование, Документ.Реализация.ДокОснование, Документ.ОтчетККМ.ДокОснование, Документ.РеализацияРозница.ДокОснование;
    |Товар = Документ.СписаниеТМЦ.Номенклатура, Документ.Реализация.Номенклатура, Документ.ОтчетККМ.Номенклатура, Документ.РеализацияРозница.Номенклатура;
    |Колво = Документ.СписаниеТМЦ.Количество, Документ.Реализация.Количество, Документ.ОтчетККМ.Количество, Документ.РеализацияРозница.Количество;
    |Коэфф = Документ.СписаниеТМЦ.Коэффициент, Документ.Реализация.Коэффициент, Документ.ОтчетККМ.Коэффициент, Документ.РеализацияРозница.Коэффициент;
    |Функция ВсегоКолво = Сумма(Колво);
    |Группировка Товар без групп;
    |Группировка Коэфф;
    |Условие(Основание = ДокОснование);
    |"//}}ЗАПРОС
    ;

    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат "Ошибка при отборе товаров.";
    КонецЕсли;
    
    Запрос.Выгрузить(СписанныеКоличества, 1, 0);
    
    Валюта         = ДокОснование.Валюта;
    Курс         = ДокОснование.Курс;
    Кратность    = ДокОснование.Кратность;

    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);
    
    // очищаем наш документ
    УдалитьСтроки();  
    
    ТаблицаДокумента.ВыбратьСтроки();
    Пока ТаблицаДокумента.ПолучитьСтроку() = 1 Цикл
        //Если (ТаблицаДокумента.КоличествоУчет > ТаблицаДокумента.Количество) Тогда
            Товар = ТаблицаДокумента.Номенклатура;
            //Колво = ТаблицаДокумента.КоличествоУчет - ТаблицаДокумента.Количество;      костя
            Колво =  ТаблицаДокумента.Количество;
            // поищем в таблице уже списанных количеств
            Поз = 0;
            Пока (СписанныеКоличества.НайтиЗначение(Товар, Поз, "Товар") = 1)
               и (Колво > 0)
            Цикл
                СписанныеКоличества.ПолучитьСтрокуПоНомеру(Поз);
                // пересчитаем количество в единицу измерения инвентаризации
                СписКолво  = СписанныеКоличества.ВсегоКолво * СписанныеКоличества.Коэфф / ТаблицаДокумента.Коэффициент;
                ПогашКолво = Мин(Колво, СписКолво);
                
                Если ПогашКолво >= СписКолво Тогда
                    СписанныеКоличества.УдалитьСтроку(Поз);
                Иначе
                    СписанныеКоличества.Колво = (СписКолво - ПогашКолво) * ТаблицаДокумента.Коэффициент / СписанныеКоличества.Коэфф;
                КонецЕсли;
                
                Колво = Колво - ПогашКолво;
                
                Поз = 0;
            КонецЦикла;
            
            Если Колво > 0 Тогда
                НоваяСтрока();
                Номенклатура= Товар;
                Количество     = Колво;
                Единица     = ТаблицаДокумента.Единица;
                Коэффициент = ТаблицаДокумента.Коэффициент;
                
                // цену и сумму заполняем только по рознице                
                Если Склад.РозничныйСклад = 1 Тогда
                    Цена     = ТаблицаДокумента.Цена;
                    Сумма     = Цена * Количество;
                КонецЕсли;
            КонецЕсли;
        //КонецЕсли;
    КонецЦикла; // по строкам основания      
    
    Если КоличествоСтрок() = 0 Тогда
        Возврат "В документе " + глПредставлениеДокумента(ДокОснование) +
                 " отсутствуют товары, учетное количество которых превышает фактическое";
    КонецЕсли;
    
    Возврат "";
    
КонецФункции // ЗаполнениеПоДокументуОснованию()
33 antoha86
 
11.03.16
13:11
Вот что нашел в модуле формы.
34 Масянька
 
11.03.16
13:14
(32) Ну и...
Сравни 2 строчки:

          //Колво = ТаблицаДокумента.КоличествоУчет - ТаблицаДокумента.Количество;      костя

            Колво =  ТаблицаДокумента.Количество;
35 Злопчинский
 
11.03.16
13:14
у меня аналогичный код выглядит вот так
.
    // сформируем список товаров,
    ТекстЗапроса = "//{{ЗАПРОС(ПредСписание)
    |Период с '01.01.1980' по ДатаДок;
    |Без итогов;
    |Основание = Документ.СписаниеТМЦ.ДокОснование, Документ.Реализация.ДокОснование, Документ.ОтчетККМ.ДокОснование, Документ.РеализацияРозница.ДокОснование;
    |Товар = Документ.СписаниеТМЦ.Номенклатура, Документ.Реализация.Номенклатура, Документ.ОтчетККМ.Номенклатура, Документ.РеализацияРозница.Номенклатура;
    |Колво = Документ.СписаниеТМЦ.Количество, Документ.Реализация.Количество, Документ.ОтчетККМ.Количество, Документ.РеализацияРозница.Количество;
    |Коэфф = Документ.СписаниеТМЦ.Коэффициент, Документ.Реализация.Коэффициент, Документ.ОтчетККМ.Коэффициент, Документ.РеализацияРозница.Коэффициент;
    |Функция ВсегоКолво = Сумма(Колво);
    |Группировка Товар без групп;
    |Группировка Коэфф;
    |Условие(Основание = ДокОснование);
    |"//}}ЗАПРОС
    ;

    Запрос = СоздатьОбъект("Запрос");
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат "Ошибка при отборе товаров.";
    КонецЕсли;
    
    Запрос.Выгрузить(СписанныеКоличества);
    
    Валюта         = ДокОснование.Валюта;
    Курс         = ДокОснование.Курс;
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);
    
    // очищаем наш документ
    УдалитьСтроки();  
    
    ТаблицаДокумента.ВыбратьСтроки();
    Пока ТаблицаДокумента.ПолучитьСтроку() = 1 Цикл
        Если (ТаблицаДокумента.КоличествоУчет > ТаблицаДокумента.Количество) Тогда
            Товар = ТаблицаДокумента.Номенклатура;
            Колво = ТаблицаДокумента.КоличествоУчет - ТаблицаДокумента.Количество;
            
            // поищем в таблице уже списанных количеств
            Поз = 0;
            Пока (СписанныеКоличества.НайтиЗначение(Товар, Поз, "Товар") = 1)
               и (Колво > 0)
            Цикл
                СписанныеКоличества.ПолучитьСтрокуПоНомеру(Поз);
                // пересчитаем количество в единицу измерения инвентаризации
                СписКолво  = СписанныеКоличества.ВсегоКолво * СписанныеКоличества.Коэфф / ТаблицаДокумента.Коэффициент;
                ПогашКолво = Мин(Колво, СписКолво);
                
                Если ПогашКолво >= СписКолво Тогда
                    СписанныеКоличества.УдалитьСтроку(Поз);
                Иначе
                    СписанныеКоличества.Колво = (СписКолво - ПогашКолво) * ТаблицаДокумента.Коэффициент / СписанныеКоличества.Коэфф;
                КонецЕсли;
                
                Колво = Колво - ПогашКолво;
                
                Поз = 0;
            КонецЦикла;
            
            Если Колво > 0 Тогда
                НоваяСтрока();
                Номенклатура= Товар;
                Количество     = Колво;
                Единица     = ТаблицаДокумента.Единица;
                Коэффициент = ТаблицаДокумента.Коэффициент;
                
                // цену и сумму заполняем только по рознице                
                Если Склад.РозничныйСклад = 1 Тогда
                    Цена     = ТаблицаДокумента.Цена;
                    Сумма     = Цена * Количество;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла; // по строкам основания      
    
    Если КоличествоСтрок() = 0 Тогда
        Возврат "В документе " + глПредставлениеДокумента(ДокОснование) +
                 " отсутствуют товары, учетное количество которых превышает фактическое";
    КонецЕсли;
    
    Возврат "";
    
КонецФункции // ЗаполнениеПоДокументуОснованию()
36 Злопчинский
 
11.03.16
13:15
(34) Правда, страннно, что мы этого костю с маленькой буквы увидели в первых четырех постах...
37 Масянька
 
11.03.16
13:18
(35) Это ты для "найдите 10 отличий"? :)))
(35) Тут я не поняла: это автор - костя -> почему тогда антон? А если автор - антон -> кто такой костя?
38 Злопчинский
 
11.03.16
13:23
(37) и почему костя и антон, а не антон и маша или на крайняк костя и глаша?
39 Звездец
 
11.03.16
13:25
(32) оторвать руки тому кто это написал
40 Масянька
 
11.03.16
13:26
(38) Европейские ценности?
(39) Кому - антону или косте? :)
41 antoha86
 
11.03.16
13:29
Заработало!))) Спасибо, Вам мудрейшие из мудрейших!
42 Масянька
 
11.03.16
13:31
(41) Заработало для инвентаризации. А для поступления - перестало?
43 Злопчинский
 
11.03.16
13:32
(40) отровать одному, вставить в (_._) другому ;-)
"от перемены мест слагаемых сумма не меняется"
.
потому что - пятница!
;-)
44 Злопчинский
 
11.03.16
13:33
Всем успехов в борьбе с глюками!
я ушел в качалку...
45 Масянька
 
11.03.16
13:34
(43) ОФФ Ребенок тут у меня спросила - трудно учиться на программиста? Папа выдал - это не лечится. :)))
46 antoha86
 
11.03.16
14:12
(42) ооо не заметил, что делать?
47 Масянька
 
11.03.16
14:15
(46) Спрятаться под стол :))))))))))))))))))
48 antoha86
 
11.03.16
14:21
(47) Спрятался
49 Масянька
 
11.03.16
14:23
(48) Вот там и сиди :)))))))))))))))))
50 HawkEye
 
11.03.16
14:38
(0) автор, предлагаю запустить глобальный поиск в конфе, по слову "костя"....
51 antoha86
 
11.03.16
15:15
костя это программист, который изменял конфигурацию (50)
52 batman69
 
11.03.16
15:50
(51) Поздравляю!
53 Масянька
 
11.03.16
15:53
(52) Кого - костю или антона? :))))))
54 batman69
 
11.03.16
15:54
(53) Ну видимо обоих, нашли друг друга два одиночества.)))
55 Масянька
 
11.03.16
16:06
(54) Ну, а чо? Весна, блин.
http://s017.radikal.ru/i402/1603/0d/c70dc963d3e3.jpg
56 ДенисЧ
 
11.03.16
16:08
(51) Вот кто бы догадался....
57 ДенисЧ
 
11.03.16
16:08
(55) Мадам... Вам срочно нужно....
58 HawkEye
 
11.03.16
16:09
(51) "костя это программист" - я сомневаюсь.....

кстати, а ты кто? тоже программист? )
59 etc
 
11.03.16
16:13
(58) он скриншот-мастер
60 etc
 
11.03.16
16:14
(46) логика подсказывает что чего-то не хватает
61 Масянька
 
11.03.16
16:19
(57) Шубу?
62 ДенисЧ
 
11.03.16
16:23
(61) Нет, съездить куда-нибудь (с)
63 Mikeware
 
11.03.16
16:25
(61) "Шуба - результат страданий животного"©
64 Масянька
 
11.03.16
16:28
(62) Даже не знаю...
(63) Ты - программист 1С. Твоя работа - результат страдания людей.
65 ДенисЧ
 
11.03.16
18:15
(64) Зато я знаю.
66 ДенисЧ
 
11.03.16
18:15
(63) Не стыдно тебе так называть бедного деда, мужа бабушки по отцу(с) ??
67 antoha86
 
21.03.16
10:50
(58) По образованию экономист, юрист к программированию имею косвенное отношение, по школьной программе уклон информационный был, спасибо за помощь!