|
v7: Вопрос по поводу бухитогов | ☑ | ||
---|---|---|---|---|
0
igor06
06.12.12
✎
11:16
|
Всем доброго времени суток.
Так как еще новичок в программировании, хотел спросит по бухитогам вопрос. Так вот есть документ расходная накладная, в табличной части выбирается ГП. При нажатии кнопки INS открывается справочник номенклатур, оттуда выбирается нужная ГП. При выборе срабатывает формула ВыборТовара() стоящей на табличной части документа на столбце ГП. Вот его код: Процедура ВыборТовара() ВыбСчет = СчетПоКоду("28.10"); ЕдИзм = ГП.ЕдиницаИзмерения; ИтБ = СоздатьОбъект("БухгалтерскиеИтоги"); ИтБ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, ГП, 2, ); ИтБ.ВключатьСубсчета(1,0); Если (Выбран() = 1) И (Проведен() = 1) Тогда //здесь операции если документ не новый Иначе //если документ новый ИтБ.ВыполнитьЗапрос(ДатаДок,ДатаДок, ВыбСчет, , , , ,5); Если ИтБ.ВыбратьСчета() = 1 Тогда Пока ИтБ.ПолучитьСчет() = 1 Цикл Если ИтБ.СКД(3) > 0 Тогда СчетУчета = ИтБ.Счет; Остаток = ИтБ.СКД(3); Себестоимость = ИтБ.СКД(1) / Остаток; Иначе СчетУчета = ИтБ.Счет; Остаток = ИтБ.СКД(3); Себестоимость = 0; Предупреждение("На данном складе нету такого товара в наличии"); КонецЕсли; КонецЦикла; Иначе Сообщить("При выборке счет не выбран!"); Возврат; КонецЕсли; КонецЕсли; КонецПроцедуры // Так вот процедура возвращает "при выборке счет не выбран!" Почему в выборку не попадает счет? Цель таков, в документе выбрано место хранение и при выборе ГП если на складе есть остатки такого ГП, вернуть в табличную часть ГП, СчетУчета, Кол-во и себестоимость, если нету остатка вернуть ГП, СчетУчета, кол-во = 0, себестоимость=0. Пластформа 1С 7.7, конф-я самописная, план счетов один. счет 28.10 это субсчет 28 счета, готовая продукция. Спасибо |
|||
1
floody
06.12.12
✎
11:18
|
2 ветки иначе разве возможно?
|
|||
2
floody
06.12.12
✎
11:18
|
Если
ИначеЕсли Иначе КонецЕсли имхо так. |
|||
3
1Сергей
06.12.12
✎
11:49
|
это не рабочий (не весь) код
|
|||
4
viktor_vv
06.12.12
✎
11:55
|
Нормально там с Если, просто неотформатировано.
Так если тебе по конкретному счету, то не надо включать субсчета, соответственно и без ВыбратьСчета(). Должно работать. |
|||
5
igor06
06.12.12
✎
11:57
|
1Сергей это процедура из формы документа. Какой код еще выложить?
|
|||
6
igor06
06.12.12
✎
11:57
|
viktor_vv то есть мне эти две строчки убрать?
|
|||
7
viktor_vv
06.12.12
✎
11:58
|
ИтБ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, ГП, 2, );
// ИтБ.ВключатьСубсчета(1,0); Если (Выбран() = 1) И (Проведен() = 1) Тогда //здесь операции если документ не новый Иначе //если документ новый ИтБ.ВыполнитьЗапрос(ДатаДок,ДатаДок, ВыбСчет, , , , ,5); // Если ИтБ.ВыбратьСчета() = 1 Тогда // Пока ИтБ.ПолучитьСчет() = 1 Цикл Если ИтБ.СКД(3) > 0 Тогда СчетУчета = ИтБ.Счет; Остаток = ИтБ.СКД(3); Себестоимость = ИтБ.СКД(1) / Остаток; Иначе СчетУчета = ИтБ.Счет; Остаток = ИтБ.СКД(3); Себестоимость = 0; Предупреждение("На данном складе нету такого товара в наличии"); КонецЕсли; //КонецЦикла; // Иначе // Сообщить("При выборке счет не выбран!"); // Возврат; // КонецЕсли; КонецЕсли; |
|||
8
viktor_vv
06.12.12
✎
12:01
|
Хотя все равно должно было выполняться ВыбратьСчета(), может таки нет на этом счете остатков по выбранной ГП.
|
|||
9
igor06
06.12.12
✎
12:03
|
viktor_vv
как учесть если остатка выбранного товара нету на складе? |
|||
10
igor06
06.12.12
✎
12:03
|
можно пример кода пожалуйста
|
|||
11
igor06
06.12.12
✎
12:11
|
Изменил код
Процедура ВыборТовара() ВидСубконто = ВидыСубконто.Номенклатура; ВыбСчет = СчетПоКоду("28.10"); ЕдИзм = ГП.ЕдиницаИзмерения; ИтБ = СоздатьОбъект("БухгалтерскиеИтоги"); ИтБ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, ГП, 2, ); Если (Выбран() = 1) И (Проведен() = 1) Тогда //это если мы открыли уже выбранный и проведенный документ ИтБ.ВыполнитьЗапрос(ТекущийДокумент(), , "28.10",,,,,"СК"); ИтБ.ВыбратьСчета(); Пока ИтБ.ПолучитьСчет() = 1 Цикл Если ИтБ.СНД(3) > 0 Тогда СчетУчета = ИтБ.Счет; Остаток = ИтБ.СНД(3); Себестоимость = ИтБ.СНД(1) / Остаток; КонецЕсли; КонецЦикла; Иначе ИтБ.ВыполнитьЗапрос(ДатаДок,ДатаДок, ВыбСчет, , , , ,5); Если ИтБ.СКД(3) > 0 Тогда СчетУчета = ИтБ.Счет; Остаток = ИтБ.СКД(3); Себестоимость = ИтБ.СКД(1) / Остаток; Иначе СчетУчета = ИтБ.Счет; Остаток = 0; Себестоимость = 0; Предупреждение("На данном складе нету такого товара в наличии"); КонецЕсли; КонецЕсли; КонецПроцедуры Да проблема возникает при выборе товара которого нету на складе. Сейчас не возвращает Остаток и Себестоимость (в табличной части пусто). А СчетУчета возвращает. |
|||
12
viktor_vv
06.12.12
✎
12:15
|
Так откуда возьмется остаток и Себестоимость, если товара нет на складе.
Не пойму, что надо-то ? |
|||
13
igor06
06.12.12
✎
12:23
|
(12) Нужно чтобы при выборе если есть остаток, то нужно вывести ГП,СчетУчета, остаток и себестоимость.
Если нету остатка вывести ГП, СчетУчета, остаток=о, себестоимость=0. |
|||
14
igor06
06.12.12
✎
12:27
|
как показать остаток и себестоимость раной нулю. вид процедуры же не возвращают значений, или это не так?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |