Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда
//Контроль отрицательных остатков //Отказ=Истина; Сообщение = Новый СообщениеПользователю; Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " +ВыборкаНоменклатура.Материал; Сообщение.Сообщить(); Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
//Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда // // //Контроль отрицательных остатков // //Отказ=Истина; // Сообщение = Новый СообщениеПользователю; // Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; // Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " //+ВыборкаНоменклатура.Материал; // Сообщение.Сообщить(); // Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
По теме: что не работает, почему не работает? Или гадалок вызывать?
Кнопки нет. Мне нужно по последней списуемойСПИСЫВАЕМОЙ партии получить отрицательный остаток, а он не получается. В лудшемЛУЧШЕМ случае списуетсяСПИСЫВАЕТСЯ вся партия.
какой еще отрицетельный остаток по партии? Нет товара - нет партии.
Хорошо, тогда без партии.
Цитата(Vofka @ 31.01.13, 12:58)
Честно говоря, я до сих пор не пойму, что вам надо
Что нигде нет примера как реализовать метод ФИФО с отрицательными остатками? Что тут непонятного? Вот пример с контролем ОО. Как сделать без контроля?
Движения.ОстаткиНоменклатуры.Очистить(); Движения.ОстаткиНоменклатуры.Записывать = Истина; Запрос = Новый Запрос; Запрос.Текст =
"ВЫБРАТЬ | КалькуляцияСостав.Материал КАК Материал, | Калькуляция.СкладМатериалов КАК Склад, | КалькуляцияСостав.Количество КАК Количество | |ПОМЕСТИТЬ ТабДок |ИЗ | Документ.Калькуляция.Состав КАК КалькуляцияСостав, | Документ.Калькуляция КАК Калькуляция |ГДЕ | КалькуляцияСостав.Ссылка = &Ссылка | И Калькуляция.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СтоимостьОстаток, | ОстаткиНоменклатурыОстатки.Партия, | ОстаткиНоменклатурыОстатки.Партия.Дата КАК ПартияДата, | ТабДок.Материал КАК Материал, | ТабДок.Количество КАК Количество, | ТабДок.Склад КАК Склад |ИЗ | ТабДок КАК ТабДок | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки( | &Момент, | (Номенклатура, Склад) В | (ВЫБРАТЬ | ТабДок.Материал, | ТабДок.Склад | ИЗ | ТабДок КАК ТабДок)) КАК ОстаткиНоменклатурыОстатки | ПО ТабДок.Материал = ОстаткиНоменклатурыОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | ПартияДата |ИТОГИ | СУММА(КоличествоОстаток), | СУММА(СтоимостьОстаток), | МАКСИМУМ(Количество) |ПО | Материал";
Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос.УстановитьПараметр("Момент",Неопределено); Иначе Запрос.УстановитьПараметр("Момент",МоментВремени()); КонецЕсли;
Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда
//Контроль отрицательных остатков Отказ=Истина; Сообщение = Новый СообщениеПользователю; Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " +ВыборкаНоменклатура.Материал; Сообщение.Сообщить();
Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
Выпилил. Не помогло. Списывается все, что есть на остатке, но в "минус" не уходит. Например, есть на остатке 5 дверных ручек нужно списать 8, 3-должны быть красным в отчете по остаткам регистра. По регистру накопления должно пройти 8 шт. проходит 5.
Ладно, зайду с другой стороны. Что такое партионный учет (как вы понимаете)?
Как на экзамене. Учет материалов где каждой партии(документ поступления) соответствует свое количество и стоимость. Но какое это имеет отношение к теме? Мне казалось, что моя тема для опытных разработчиков ясна и понятна. Я работаю как пользователь в 1с-ке с отрицательными остатками очень давно и считаю, что работать с их запретом невозможно вообще. Поэтому механизмы реализации учета товара должны быть разными. И "отрицательные остатки" в проведении документа это самые основы. Разве не так? Поэтому я и говорю о примерах, которые должны быть в той же литературе.
Как на экзамене. Учет материалов где каждой партии(документ поступления) соответствует свое количество и стоимость. Но какое это имеет отношение к теме? Мне казалось, что моя тема для опытных разработчиков ясна и понятна. Я работаю как пользователь в 1с-ке с отрицательными остатками очень давно и считаю, что работать с их запретом невозможно вообще. Поэтому механизмы реализации учета товара должны быть разными. И "отрицательные остатки" в проведении документа это самые основы. Разве не так? Поэтому я и говорю о примерах, которые должны быть в той же литературе.
По моему в любой типовой конфигурации можно отключить контроль ОО через интерфейс пользователя! В этом случае при проведении в минус каждый раз создается новая пария.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
По моему в любой типовой конфигурации можно отключить контроль ОО через интерфейс пользователя! В этом случае при проведении в минус каждый раз создается новая пария.
Конфигурация не типовая.
Цитата(sava1 @ 31.01.13, 15:15)
После первого конца списка все количество, что осталось списываем с нулевой стоимостью после первого цикла (вложенного)
Живет на форуме
Группа: Местный
Сообщений: 2752
Из: Проскуров
Спасибо сказали: 708 раз
Рейтинг: 686.5
1. Первую проверку убираем (комментируем) 2. Вторая часть сохраняется (в части списания наличных партий) 3. После списания существ. партий остается некоторое количество (КоличествоНадоСписать). Вот его списываем без партии и без стоимости - уходим в минуса по количеству. потом эту ситуацию можно найти анализом регистра или тупым перепроведением расходных документов.
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата(alex040269 @ 31.01.13, 15:38)
По моему в любой типовой конфигурации можно отключить контроль ОО через интерфейс пользователя! В этом случае при проведении в минус каждый раз создается новая пария.
Отключите контроль остатков в партионном учете в УТ.
Если Вам не помогли предыдущие советы (например alex040269 ), то проблема не в обработке запроса, а в самом запросе. Коль конфигурация писалась с нуля, возможно в запросе уже сделали отбор на отрицательные остатки. Для дальнейшего анализа - запрос в студию!
Сообщение отредактировал TipsyKID - 31.01.13, 16:27
Специалист : Технологическая платформа 8.х, Бухгалтерия для Украины, Управление торговлей для Украины, Зарплата и Управление Персоналом для Украины
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!