Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда
//Контроль отрицательных остатков //Отказ=Истина; Сообщение = Новый СообщениеПользователю; Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " +ВыборкаНоменклатура.Материал; Сообщение.Сообщить(); Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
//Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда // // //Контроль отрицательных остатков // //Отказ=Истина; // Сообщение = Новый СообщениеПользователю; // Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; // Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " //+ВыборкаНоменклатура.Материал; // Сообщение.Сообщить(); // Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Vofka @ 31.01.13, 11:55)
Кнопки "выкл" нигде нету?
По теме: что не работает, почему не работает? Или гадалок вызывать?
Кнопки нет. Мне нужно по последней списуемойСПИСЫВАЕМОЙ партии получить отрицательный остаток, а он не получается. В лудшемЛУЧШЕМ случае списуетсяСПИСЫВАЕТСЯ вся партия.
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(reneval @ 31.01.13, 13:18)
какой еще отрицетельный остаток по партии? Нет товара - нет партии.
Хорошо, тогда без партии.
Цитата(Vofka @ 31.01.13, 12:58)
Честно говоря, я до сих пор не пойму, что вам надо
Что нигде нет примера как реализовать метод ФИФО с отрицательными остатками? Что тут непонятного? Вот пример с контролем ОО. Как сделать без контроля?
Движения.ОстаткиНоменклатуры.Очистить(); Движения.ОстаткиНоменклатуры.Записывать = Истина; Запрос = Новый Запрос; Запрос.Текст =
"ВЫБРАТЬ | КалькуляцияСостав.Материал КАК Материал, | Калькуляция.СкладМатериалов КАК Склад, | КалькуляцияСостав.Количество КАК Количество | |ПОМЕСТИТЬ ТабДок |ИЗ | Документ.Калькуляция.Состав КАК КалькуляцияСостав, | Документ.Калькуляция КАК Калькуляция |ГДЕ | КалькуляцияСостав.Ссылка = &Ссылка | И Калькуляция.Ссылка = &Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток, | ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СтоимостьОстаток, | ОстаткиНоменклатурыОстатки.Партия, | ОстаткиНоменклатурыОстатки.Партия.Дата КАК ПартияДата, | ТабДок.Материал КАК Материал, | ТабДок.Количество КАК Количество, | ТабДок.Склад КАК Склад |ИЗ | ТабДок КАК ТабДок | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки( | &Момент, | (Номенклатура, Склад) В | (ВЫБРАТЬ | ТабДок.Материал, | ТабДок.Склад | ИЗ | ТабДок КАК ТабДок)) КАК ОстаткиНоменклатурыОстатки | ПО ТабДок.Материал = ОстаткиНоменклатурыОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | ПартияДата |ИТОГИ | СУММА(КоличествоОстаток), | СУММА(СтоимостьОстаток), | МАКСИМУМ(Количество) |ПО | Материал";
Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос.УстановитьПараметр("Момент",Неопределено); Иначе Запрос.УстановитьПараметр("Момент",МоментВремени()); КонецЕсли;
Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.Количество Тогда
//Контроль отрицательных остатков Отказ=Истина; Сообщение = Новый СообщениеПользователю; Нехватка = ВыборкаНоменклатура.Количество-ВыборкаНоменклатура.КоличествоОстаток; Сообщение.Текст="В документе № " +Номер+ " от " +Дата+ " Не хватает " +Нехватка+ " Единиц материала " +ВыборкаНоменклатура.Материал; Сообщение.Сообщить();
Иначе //Вычисление себестоимости списываемых партий КоличествоНадоСписать=ВыборкаНоменклатура.Количество;
ВыборкаДетальныеЗаписи=ВыборкаНоменклатура.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ВыборкаДетальныеЗаписи.КоличествоОстаток <= КоличествоНадоСписать Тогда
//Списываем всю партию
КоличествоКСписанию= ВыборкаДетальныеЗаписи.КоличествоОстаток; СтоимостьКСписанию=ВыборкаДетальныеЗаписи.СтоимостьОстаток; //Уменьшаем количество к списанию
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Vofka @ 31.01.13, 14:09)
Выпилить контроль из того места где он есть.
Непонятно откуда у людей такие мысли берутся.
Выпилил. Не помогло. Списывается все, что есть на остатке, но в "минус" не уходит. Например, есть на остатке 5 дверных ручек нужно списать 8, 3-должны быть красным в отчете по остаткам регистра. По регистру накопления должно пройти 8 шт. проходит 5.
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Vofka @ 31.01.13, 14:30)
Ладно, зайду с другой стороны. Что такое партионный учет (как вы понимаете)?
Как на экзамене. Учет материалов где каждой партии(документ поступления) соответствует свое количество и стоимость. Но какое это имеет отношение к теме? Мне казалось, что моя тема для опытных разработчиков ясна и понятна. Я работаю как пользователь в 1с-ке с отрицательными остатками очень давно и считаю, что работать с их запретом невозможно вообще. Поэтому механизмы реализации учета товара должны быть разными. И "отрицательные остатки" в проведении документа это самые основы. Разве не так? Поэтому я и говорю о примерах, которые должны быть в той же литературе.
Как на экзамене. Учет материалов где каждой партии(документ поступления) соответствует свое количество и стоимость. Но какое это имеет отношение к теме? Мне казалось, что моя тема для опытных разработчиков ясна и понятна. Я работаю как пользователь в 1с-ке с отрицательными остатками очень давно и считаю, что работать с их запретом невозможно вообще. Поэтому механизмы реализации учета товара должны быть разными. И "отрицательные остатки" в проведении документа это самые основы. Разве не так? Поэтому я и говорю о примерах, которые должны быть в той же литературе.
По моему в любой типовой конфигурации можно отключить контроль ОО через интерфейс пользователя! В этом случае при проведении в минус каждый раз создается новая пария.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
Группа: Пользователи
Сообщений: 181
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(alex040269 @ 31.01.13, 15:38)
По моему в любой типовой конфигурации можно отключить контроль ОО через интерфейс пользователя! В этом случае при проведении в минус каждый раз создается новая пария.
Конфигурация не типовая.
Цитата(sava1 @ 31.01.13, 15:15)
После первого конца списка все количество, что осталось списываем с нулевой стоимостью после первого цикла (вложенного)
1. Первую проверку убираем (комментируем) 2. Вторая часть сохраняется (в части списания наличных партий) 3. После списания существ. партий остается некоторое количество (КоличествоНадоСписать). Вот его списываем без партии и без стоимости - уходим в минуса по количеству. потом эту ситуацию можно найти анализом регистра или тупым перепроведением расходных документов.
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1
Цитата(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С форуме!