Номенклатура и поставщик

1. Самоделкин 2 25.03.14 22:14 Сейчас в теме
Можно ли в 1С 7.7 ТиС 9.2 реализовать вот такое

http://extremallife.ru/analysis/postavshhiki-nom

Сам я с таким не справлюсь - не хватит моих знаний.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. vcv 89 26.03.14 10:07 Сейчас в теме
Можно примерно так:
Есть в документе ЗаказПоставщику штатная процедура ЗаполнитьПоМинОстатку()
Вставить в неё код в начале код
ТекстЗапросаНоменклатурыПоставщика = "
Номенклатура = Справочник.Аналоги.Владелец;
Поставщик = Справочник.Аналоги.Каталог.ВладелецКаталога;
Условие(Поставщик = Контрагент);
Группировка Номенклатура Без групп;";
ЗапросНоменклатурыПоставщика = СоздатьОбъект("Запрос");
Если ЗапросНоменклатурыПоставщика.Выполнить(ТекстЗапроса) = 0 Тогда 
  Возврат "Ошибка определения каталога номенклатуры поставщика"; 
КонецЕсли;
ТаблицаНоменклатурыПоставщика = СоздатьОбъект("ТаблицаЗначений");
НоменклатурыПоставщика.Выгрузить(ТаблицаНоменклатурыПоставщика,0,0);
Если ТаблицаНоменклатурыПоставщика.КоличествоСтрок() = 0 Тогда
  Возврат "Каталог номенклатуры поставщика пуст"; 
КонецЕсли;
Показать

чуть ниже внести исправление:
	Пока Запрос.Группировка(1) = 1 Цикл
		
		КолЗаказа = Запрос.Номенклатура.МинОстаток - Запрос.КонОстНаличия + Запрос.КонОстРезерва - Запрос.КонОстЗаказа; 
		Если КолЗаказа <= 0  Тогда
		    Продолжить;
		КонецЕсли;
		
		// ТУТ НОВЫЕ СТРОКИ
		Строчка = 0;
		Если ТаблицаНоменклатурыПоставщика.НайтиЗначение(Запрос.Номенклатура,Строчка,"Номенклатура") = 0 Тогда
			Продолжить;
		КонецЕсли;
		// ТУТ НОВЫЕ СТРОКИ ЗАКОНЧИЛИСЬ

Показать

и при заполнении документа "По минимальному остатку" будет выходить только та номенклатура, которая в справочнике аналогов приписана к поставщику.

P.S. Писал сразу в браузере, за работоспособность не отвечаю :)
Самоделкин; +1 Ответить
7. Самоделкин 2 26.03.14 16:19 Сейчас в теме
(6) vcv, спасибо, попробую!
8. Самоделкин 2 26.03.14 20:47 Сейчас в теме
(6) vcv, всё написал (ошибок не выдает), но появился вопрос: где заполнение "По минимальному остатку"?
Прикрепленные файлы:
89. Иваныч 23 01.03.23 17:44 Сейчас в теме
(1)Получилось у Вас задуманное? Я делал немного иначе: добавил справочник КодПоставщика, подчиненный справочнику Номенклатура. В нем 2 поля: Поставщик и Код. Почему так делал: у 3-х поставщиков одинаковый товар Масло моторное... Моторное масло... , а у меня Масло Лукойл Супер 10/40 1л. (как пример). И у каждого Поставщика есть свой код в БД. Накладная от Поставщика идет с кодом, у меня есть загрузчик из .xls- файла, все грузится быстро. Если нет номенклатуры, например заказал новое в продажу, либо руками создам, либо автоматически запишется, но тогда нужно в группу переносить соответственно. И еще один плюс - есть обработка сравнения цены: каждому поставщику выслал один и тот-же заказ, получаю от них готовые накладные, а 1С сравнивает в обработке и останется только прочитать соообщения: строка №111 у такаго-то дешевле, строка 222 - у такого-то.
А штатный справочник Аналоги переписал для подбора аналогов позиции в собственной номенклатуре: ключ комбинированный 10мм Автодело / ключ комбинированный 10мм ДелоТехники (например). И таких позиций может быть больше. Есть кнопка ЗаписатьАналоги, которая прописывает соответствия и кнопка Аналоги открывает отчет ОстаткиТМЦ только по прописанным аналогам. Если интересно, могу поделиться
90. CheBurator 3120 04.03.23 00:56 Сейчас в теме
91. Иваныч 23 06.03.23 08:08 Сейчас в теме
(90)
(90) А кто знает, может было отложено в "долгий ящик"...
92. CheBurator 3120 06.03.23 15:59 Сейчас в теме
(91) Это без проблем. у меня в ToDo висели задачи 3-4-5 лет... не особо срочные/нужные, так и довисели практически до отмирания нужности ;-)
93. Иваныч 23 07.03.23 09:49 Сейчас в теме
(92) Бывает, такого же тоже много на диске. Что-то удаляю безжалостно, а большинство остается.
2. vcv 89 25.03.14 22:45 Сейчас в теме
"Такое" это что именно? Привязка номенклатуры к списку поставщиков? Штатный справочник аналогов номенклатуры.
4. Самоделкин 2 26.03.14 07:10 Сейчас в теме
(2) vcv, ну привязать номенклатуру к поставщикам, т.е. когда открываем заказ поставщику, выбираем поставщика и получает товар, который он поставляет.
3. jigourt 31 26.03.14 02:00 Сейчас в теме
Можно ли в 1С

реализовать вот такое

ответ: можно. все можно
5. Самоделкин 2 26.03.14 07:13 Сейчас в теме
(3) jigourt, я так и предполагал, тогда другой вопрос: как это реализовать и кто может помочь - я это буду делать минимум год, а хотелось бы уже работать, при необходимости могу предоставить удаленный доступ.
9. Самоделкин 2 26.03.14 21:10 Сейчас в теме
Извиняюсь, с тормозил, "По минимальному остатку" нашел.

Появилась ошибка:

НоменклатурыПоставщика.Выгрузить(ТаблицаНоменклатурыПоставщика,0,0);
{Документ.ЗаказПоставщику.Форма.Модуль(631)}: Значение не представляет агрегатный объект (Выгрузить)

Как ее исправить?
10. vcv 89 26.03.14 22:30 Сейчас в теме
(9) опечатка. Вместо
НоменклатурыПоставщика.Выгрузить(ТаблицаНоменклатурыПоставщика,0,0);
Должно быть
ЗапросНоменклатурыПоставщика.Выгрузить(ТаблицаНоменклатурыПоставщика,0,0);

Всё же перед тем, как копипастить код из форума, полезно бы его думать.
11. Самоделкин 2 26.03.14 23:06 Сейчас в теме
(10) vcv, спасибо. К сожалению, я не программист, а просто любитель.
12. vcv 89 27.03.14 05:38 Сейчас в теме
(11) Как говорится, "любитель построил Ковчег, профессионалы построили Титаник" ;)
13. Самоделкин 2 27.03.14 14:57 Сейчас в теме
(12) vcv, был бы программист (все занимаются только 8), я бы не заморачивался, как было хорошо когда не было этой 8, позвонил, пришли, сделали. Я бы больше сказал любитель-самоучка.

если я Вас еще не совсем замучил, то еще вопрос: как сделать "номенклатура, которая в справочнике аналогов приписана к поставщику", там только каталоги - поставщиков не видать.
14. Jill 17 27.03.14 16:16 Сейчас в теме
(13) Самоделкин, владелец каталога и есть поставщик (контрагент).
Самоделкин; +1 Ответить
15. Самоделкин 2 27.03.14 20:20 Сейчас в теме
(14) Jill, еще пара, возможно глупых вопросов:

1. в аналогах все сделал (выбрав 4 товара с 0 остатком, установил им мин.остаток = 1), но когда делаю Заказ Поставщику по мин. остатку, то выходит только 2 товара.
2. можно ли и где (или как) присвоить группе номенклатуры какого-нибудь одного поставщика?
16. vcv 89 27.03.14 22:02 Сейчас в теме
(15) Количество заказа определяется так (в том релизе, который у меня под рукой)
КолЗаказа = Запрос.Номенклатура.МинОстаток - Запрос.КонОстНаличия + Запрос.КонОстРезерва - Запрос.КонОстЗаказа; 

Если товар не включается в заказ, возможно он уже заказан (Запрос.КонОстЗаказа), возможно по нему висит ошибочный красный резерв (Запрос.КонОстРезерва).
Кстати, рекомендую, что бы меньше влияли косяки с резервами, заменить Запрос.КонОстРезерва на Макс(Запрос.КонОстРезерва,0)

Штатных средств для установки куче позиций номенклатуры одного поставщика/каталога нет.
Но сделать нештатное совершенно не сложно.
хорошо бы, кстати, сделать отчет, который будет показывать связь номенклатуры с поставщиком. А то легко запутаться и накосячить. Ну и, конечно, показывать бы в карточке номенклатуры список поставщиков.
17. Самоделкин 2 27.03.14 22:26 Сейчас в теме
(16) vcv, я выбирал номенклатуру, которую не заказывали и не продавали пару месяцев, попробую заменить Запрос.
С карточкой номенклатуры я справлюсь, а вот дальше вопрос.
20. Jill 17 28.03.14 14:17 Сейчас в теме
(16) vcv, уверен, что дело в КонОстЗаказа. Резервами, судя по выложенному бланку, автор не пользуется, а вот отказы, без корректировочных заказов - дело распространенное.
21. Самоделкин 2 28.03.14 18:14 Сейчас в теме
(20) Jill, "отказы, без корректировочных заказов" - это сделал заказ, сделал накладную и из накладной удалил позицию, а в заказе не удалил, так? Если так, то резервы снял все (дома можно делать, что угодно).
(18) vcv, все попробовал, все-равно не получается.
Прикрепленные файлы:
22. Jill 17 28.03.14 18:44 Сейчас в теме
(21) Самоделкин, (18) вставлено до
Если КолЗаказа <= 0  Тогда
    Продолжить;
КонецЕсли;
?

И в (6) имелось ввиду:
Если ЗапросНоменклатурыПоставщика.Выполнить(ТекстЗапросаНоменклатурыПоставщика) = 0 Тогда //ну эт я так - на всякий случай
Самоделкин; +1 Ответить
23. vcv 89 28.03.14 21:31 Сейчас в теме
(21) на первов скриншоте видно, что количество заказанного равно 1. Минимальный остаток тоже 1. Значит в заказ ничего не включается, потому что уже есть заказанное количество, и когда произойдёт ожидаемый 1С приход в количестве 1, фактический остаток станет равным минимальному. Значит и заказывать ничего не надо.
А вот надо разбираться в бардаке в учета заказов. В последовательности оформления заказов и поступлений. Кури отчет "Заказы поставщикам".
18. vcv 89 28.03.14 08:26 Сейчас в теме
Для начала бы вставил в код после расчета КолЗаказа примерно так:
Сообщить("Номенклатура = "+Запрос.Номенклатура);
Сообщить("КолЗаказа = "+КолЗаказа);
Сообщить("МинОстаток = "+Запрос.Номенклатура.МинОстаток);
Сообщить("Наличие = "+Запрос.КонОстНаличия);
Сообщить("Резерв = "+Запрос.КонОстРезерва);
Сообщить("Уже заказано = "+Запрос.КонОстЗаказа);

И исходя из увиденных цифр решал бы где косяк. Подозреваю два варианта - некорректные резервы (красные или или резерв больше наличия) или у вас не закрываются заказы и количество заказанного копится.
Самоделкин; +1 Ответить
19. Самоделкин 2 28.03.14 08:54 Сейчас в теме
(18) vcv, спасибо, вечером обязательно попробую - на работе нет той базы, где я изгаляюсь.
24. vcv 89 28.03.14 21:36 Сейчас в теме
Хотя, надо сказать, учет заказов в ТиС еще той долбанутости. Капризная довольно подсистема.
Можно, конечно, убрать остатки заказов в формуле расчета требуемого количества
КолЗаказа = Запрос.Номенклатура.МинОстаток - Запрос.КонОстНаличия + Запрос.КонОстРезерва;

но это "вредный" совет, лучше всё же навести порядок :)
Самоделкин; +1 Ответить
25. Самоделкин 2 20.04.14 21:45 Сейчас в теме
Решил сделать отдельный справочник Поставщики, как бы сделал. НО.....

могу выбрать только одного

Что я не так делаю?
Прикрепленные файлы:
26. vcv 89 21.04.14 08:19 Сейчас в теме
Правильно, что одного. Один реквизит - одно значение. А не куча.
Вариант первый, делать несколько реквизитов. Типа Поставщик1, Поставщик2, Поставщик3...
Вариант второй, отдельный справочник, который свяжет номенклатуру и поставщиков. Можно свой справочник, можно типовой справочник Аналоги, о котором уже в этой ветке говорили.

Вообще-то непонятно. Вроде обговорили здесь уже всё, а ты опять какую-то фигню (уж извини за прямоту) городишь.
27. Самоделкин 2 24.04.14 09:10 Сейчас в теме
(26) vcv, да хотел, что-нибудь типа этого:
Прикрепленные файлы:
28. vcv 89 24.04.14 11:31 Сейчас в теме
(27) Несложно.
Предположим, таки используется справочник Аналогов, как тут обсуждалось. Тогда кладём на форму таблицу значений ТаблицаПоставщиков, а в модуле формы пишем примерно так:
Процедура ЗаполнитьТаблицуПоставщиков()
  ТаблицаПоставщиков.УдалитьСтроки();
  Если Выбран() = 1 Тогда
    ТекНоменклатура = ТекущийЭлемент();
    ТекстЗапросаПоставщиковНоменклатуры = "
    |Аналог = Справочник.Аналоги.ТекущийЭлемент();
    |Номенклатура = Справочник.Аналоги.Владелец;
    |НаименованиеПоставщика = Справочник.Аналоги.Наименование;
    |Артикул = Справочник.Аналоги.ИдентификаторВКаталоге;
    |Поставщик = Справочник.Аналоги.Каталог.ВладелецКаталога;
    |Условие(Номенклатура = ТекНоменклатура);
    |Группировка Аналог Без групп;";
    ЗапросПоставщиковНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросПоставщиковНоменклатуры.Выполнить(ТекстЗапросаПоставщиковНоменклатуры) = 1 Тогда 
      Пока ЗапросПоставщиковНоменклатуры.Группировка(1) = 1 Цикл
        ТаблицаПоставщиков.НоваяСтрока();
        ТаблицаПоставщиков.Поставщик = ЗапросПоставщиковНоменклатуры.Поставщик;
        ТаблицаПоставщиков.НаименованиеПоставщика = ЗапросПоставщиковНоменклатуры.НаименованиеПоставщика;
        ТаблицаПоставщиков.Артикул = ЗапросПоставщиковНоменклатуры.Артикул;
      КонецЦикла;
    КонецЕсли; 
КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
  ...
  ТаблицаПоставщиков.НоваяКолонка("Поставщик",,,,"Поставщик");
  ТаблицаПоставщиков.НоваяКолонка("НаименованиеПоставщика",,,,"Наименование");
  ТаблицаПоставщиков.НоваяКолонка("Артикул",,,,"Артикул");
  ЗаполнитьТаблицуПоставщиков();
  ...
КонецПроцедуры
Показать


И получаем первую таблицу - "поставщики данной позиции"

Основного поставщика проще всего будет хранить прямо в справочнике номенклатуры реквизитом.
Самоделкин; +1 Ответить
31. Самоделкин 2 24.04.14 15:53 Сейчас в теме
(28) vcv,
Основного поставщика проще всего будет хранить прямо в справочнике номенклатуры реквизитом.


А как это правильно сделать?
29. vcv 89 24.04.14 11:37 Сейчас в теме
(27) С ценами чуток сложнее. Сначала нужно определиться, где их хранить. В штатном справочнике цен или еще где.
Если в справочнике цен, тогда понадобится привязка прайса к поставщику. Значит в справочнике ТипыЦен заводим реквизит Поставщик.
А для заполнения таблицы на форме пишем примерно такой-же код, что и для первой таблице, только в запросе обращаться нужно не к справочнику аналогов, а к справочнику цен.
Самоделкин; +1 Ответить
30. Самоделкин 2 24.04.14 15:36 Сейчас в теме
(29) vcv, спасибо, за помощь. Пока попробую сделать только первую таблицу.

А, реквизит Поставщики убрать?
32. vcv 89 24.04.14 15:59 Сейчас в теме
(30) (31) Переименуй его просто в ОсновнойПоставщик. И выложи на форму как на желаемом скриншоте.
Самоделкин; +1 Ответить
33. Самоделкин 2 24.04.14 16:04 Сейчас в теме
(32) vcv, еще раз спасибо, буду пробовать!
34. Самоделкин 2 24.04.14 20:08 Сейчас в теме
(32) vcv, сейчас пробую и получил ошибки

Если ЗапросПоставщиковНоменклатуры.Выполнить(ТекстЗапросаПоставщиковНоменклатуры) = 1 Тогда
{Справочник.Номенклатура.Форма.Модуль(29)}: Аналог = Справочник.Аналоги.ТекущийЭлемент <<?>> ();
Запрос[2] : Ожидается ';' перед '('
Если ЗапросПоставщиковНоменклатуры.Выполнить(ТекстЗапросаПоставщиковНоменклатуры) = 1 Тогда
{Справочник.Номенклатура.Форма.Модуль(29)}: Условие(Номенклатура = ТекНоменклатура <<?>> );
Запрос[7] : Ошибка в условии
Если ЗапросПоставщиковНоменклатуры.Выполнить(ТекстЗапросаПоставщиковНоменклатуры) = 1 Тогда
{Справочник.Номенклатура.Форма.Модуль(29)}: Группировка Аналог <<?>> Без групп;
Запрос[8] : Переменная 'Аналог' не опеределена

Что теперь делать?
35. vcv 89 25.04.14 10:37 Сейчас в теме
(34) Убери после "Справочник.Аналоги.ТекущийЭлемент" круглые скобки.
Надо же хоть как-то читать код! А не надеяться, что готовое решение опубликуют. Забесплатно. А за деньги уже другой разговор может быть :)
Самоделкин; +1 Ответить
36. Самоделкин 2 25.04.14 13:05 Сейчас в теме
(35) vcv,
А за деньги уже другой разговор может быть :)

Да, было бы не плохо если бы за мои труды дали бы хоть 100 руб, а так говорят:"Это надо тебе, ты и делай."
Убери после "Справочник.Аналоги.ТекущийЭлемент" круглые скобки.

Что я уж вчера только не делал, а вот попробовать убрать скобки не додумался, дома опробую.

Помогите, пожалуйста,
Условие(Номенклатура = ТекНоменклатура <<?>> );: Ошибка в условии
, что можно с этим сделать или хотя бы где прочитать?

Группировка Аналог <<?>> Без групп;: Переменная 'Аналог' не опеределена
- пробовал
Перем Аналог
не прокатило, в реквизиты Аналог добавлять не надо?
38. vcv 89 25.04.14 14:20 Сейчас в теме
(36) Другие ошибки - скорее всего следствие первой. Типа синтаксическая ошибка в строке -> переменные, описанные в следующих строках запроса оказываются неопределенными -> ругается на условия и группировки, которые используют эти переменные.
Это еще лёгкий случай, бывает, забыв поставить где-то точку с запятой в глобальнике, получаешь "список ошибок" в несколько экранов :)
Самоделкин; +1 Ответить
39. Самоделкин 2 25.04.14 15:17 Сейчас в теме
(38) vcv, огромное человеческое спасибо. Дома буду пробовать.
40. Самоделкин 2 25.04.14 18:18 Сейчас в теме
(38) vcv, (37) eshtrey, Еще раз, ОГРОМНОЕ СПАСИБО!!!!!!!!!
41. vcv 89 25.04.14 20:43 Сейчас в теме
(40) Что, получилось? Неужели и с табличкой цен справился?
42. Самоделкин 2 25.04.14 20:58 Сейчас в теме
(41) vcv,
Неужели и с табличкой цен справился?

Пока, что только с поставщиками, все работает правильно.
Таблица цена - нарисовал, поставщика в реквизиты поставил, но пока ничего хорошего не получилось, где-то накосячил.
Сейчас пока пытаюсь разобраться сам где. А вдруг додумаю. Пока не знаю как связать поставщика из ТипыЦен с Аналогами.
Если уж не додумаю, буду просить опять Вашей помощи.
43. Самоделкин 2 27.04.14 15:57 Сейчас в теме
(29) vcv, помогите разобраться
//******************************************************************************
//
Процедура ЗаполнитьТаблицуЦен()
  ТаблицаЦен.УдалитьСтроки();
  Если Выбран() = 1 Тогда
    ТекЦена = ТекущийЭлемент();
    ТекстЗапросаЦенНоменклатуры = "
    |Цена = Справочник.ТипыЦен.ТекущийЭлемент;
    |НаименованиеЦены = Справочник.Цены.Наименование;
	|Валюта = Справочник.ТипыЦен.Валюта;
	|Поставщик = Справочник.Аналоги.Каталог.ВладелецКаталога; 
    |Дата = Документ.ПоступлениеТМЦ.ДатаДок;
    |Условие(Цена = ТекЦена);
    |Группировка Цена Без групп;";
    ЗапросЦенНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросЦенНоменклатуры.Выполнить(ТекстЗапросаЦенНоменклатуры) = 1 Тогда 
      Пока ЗапросЦенНоменклатуры.Группировка(1) = 1 Цикл
        ТаблицаЦен.НоваяСтрока();
        ТаблицаЦен.Поставщик = ЗапросЦенНоменклатуры.Поставщик;
        ТаблицаЦен.НаименованиеЦен = ЗапросЦенНоменклатуры.НаименованиеЦены;
        ТаблицаЦен.Дата = ЗапросЦенНоменклатуры.Дата;
		ТаблицаЦен.Валюта = ЗапросЦенНоменклатуры.Валюта;
      КонецЦикла;
    КонецЕсли; 
КонецЕсли;
КонецПроцедуры
.....
ТаблицаЦен.НоваяКолонка("Поставщик",,,,"Поставщик",25);
  ТаблицаЦен.НоваяКолонка("Дата",,,,"Дата",10,"Д ДД.ММ.ГГ");
  ТаблицаЦен.НоваяКолонка("НаименованиеЦен",,,,"Цена",7, "Ч15.2", 2 );
  ТаблицаЦен.НоваяКолонка("Валюта",,,,"Валюта",5 );
  ЗаполнитьТаблицуЦен();
.....
Показать

в таблицу ничего не выводит. Подскажите, что не так?
Хотелось бы в таблице получить: поставщик, дата ПоступленияТМЦ, цена ПоступленияТМЦ, валюта.
Прикрепленные файлы:
37. eshtrey 25.04.14 13:32 Сейчас в теме
|Аналог = Справочник.Аналоги.ТекущийЭлемент();
убери ()
44. vcv 89 27.04.14 18:07 Сейчас в теме
Если "Хотелось бы в таблице получить: поставщик, дата ПоступленияТМЦ, цена ПоступленияТМЦ, валюта", то всё не так. Из справочника цен дату поступления, в общем случае, не получишь.
Здесь скорее нужны остатки по партиям.
Примерно такой запрос:
	|Поставщик = Регистр.ПартииНаличие.Партия.Поставщик;
	|ВалютаВзаиморасчетов = Регистр.ПартииНаличие.Партия.ДоговорПоставщика.ВалютаВзаиморасчетов;
	|ЗакупочнаяЦена = Регистр.ПартииНаличие.Партия.ЗакупочнаяЦена;
	|ДатаДок = Регистр.ПартииНаличие.Партия.ПриходныйДокумент.ДатаДок;
	|Количество = Регистр.ПартииНаличие.Количество;
	|Номенклатура = Регистр.ПартииНаличие.Номенклатура;
	|Функция КоличествоКонОст = КонОст(Количество);
	|Группировка Поставщик без групп;
	|Группировка ВалютаВзаиморасчетов;
	|Группировка ДатаДок;
	|Группировка ЗакупочнаяЦена;
	|Условие(Номенклатура = ТекущийЭлемент);
Показать

Но для этого требуется, что бы у вас вёлся учет себестоимости не по среднему, а FIFO или LIFO
45. Самоделкин 2 27.04.14 20:03 Сейчас в теме
(44) vcv,
Но для этого требуется, что бы у вас вёлся учет себестоимости не по среднему, а FIFO или LIFO

А где можно посмотреть этот учет?
Немножко доработал Ваш код, но
Прикрепленные файлы:
55. vcv 89 29.04.14 19:47 Сейчас в теме
Отлично. Значит партии есть. Тогда смотри в (44).
56. Самоделкин 2 29.04.14 19:53 Сейчас в теме
57. vcv 89 29.04.14 21:27 Сейчас в теме
А что, не работает запрос в (44)? Если чего не получается, кидай код. Можешь выложить на какой-нибудь файлообменник MDшник. Или базу, если не жалко :) Посмотрю.
58. Самоделкин 2 29.04.14 21:54 Сейчас в теме
(57) vcv, MD здесь, если нужна база, мне не жалко, но только для Вас на почту. dr.man37@yandex.ru
Процедура ЗаполнитьТаблицуЦен()
	
  ТаблицаЦен.УдалитьСтроки();
  
  Если Выбран() = 1 Тогда 
  	
    ТекНоменклатура = ТекущийЭлемент();
	
    ТекстЗапросаЦенНоменклатуры = "
    |Поставщик = Регистр.ПартииНаличие.Партия.Поставщик;
    |ВалютаВзаиморасчетов = Регистр.ПартииНаличие.Партия.ДоговорПоставщика.ВалютаВзаиморасчетов;
    |ЗакупочнаяЦена = Регистр.ПартииНаличие.Партия.ЗакупочнаяЦена;
    |ДатаДок = Регистр.ПартииНаличие.Партия.ПриходныйДокумент.ДатаДок;
    |Количество = Регистр.ПартииНаличие.Количество;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Поставщик без групп;
    |Группировка ВалютаВзаиморасчетов;
    |Группировка ДатаДок;
    |Группировка ЗакупочнаяЦена;
    |Условие(Номенклатура = ТекНоменклатура);
    |"
    ;
    ЗапросЦенНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросЦенНоменклатуры.Выполнить(ТекстЗапросаЦенНоменклатуры) = 1 Тогда 
      Пока ЗапросЦенНоменклатуры.Группировка(1) = 1 Цикл
        ТаблицаЦен.НоваяСтрока();
        ТаблицаЦен.Поставщик = ЗапросЦенНоменклатуры.Поставщик;
        ТаблицаЦен.НаименованиеЦен = ЗапросЦенНоменклатуры.ЗакупочнаяЦена;
        ТаблицаЦен.Дата = ЗапросЦенНоменклатуры.ДатаДок;
	ТаблицаЦен.Валюта = ЗапросЦенНоменклатуры.ВалютаВзаиморасчетов;
      КонецЦикла;
    КонецЕсли; 
КонецЕсли;
КонецПроцедуры
.......
  ТаблицаЦен.НоваяКолонка("Поставщик",,,,"Поставщик",25);
  ТаблицаЦен.НоваяКолонка("Дата",,,,"Дата",10,"Д ДД.ММ.ГГ");
  ТаблицаЦен.НоваяКолонка("НаименованиеЦен",,,,"Цена",7, "Ч15.2", 2 );
  ТаблицаЦен.НоваяКолонка("Валюта",,,,"Валюта",5 );
  ЗаполнитьТаблицуЦен();
.....
Показать

но похоже у меня проблемы с запросом.
46. Самоделкин 2 28.04.14 11:39 Сейчас в теме
vcv,
учет себестоимости не по среднему, а FIFO или LIFO

Где поменять учет нашел, правда не понимаю в чем там разница, но да ладно.

А нельзя это вытащить из Истории Цен, там ведь без разницы (если я правильно понял) как ведется учет?
47. vcv 89 28.04.14 13:11 Сейчас в теме
(46) Разница в том, что получить дату поступления можно только из партии, если партионный учет ведётся.
Посмотреть настройки партионного учета можно в фирме (юр.лице) на закладке "Учетная политика", на сколько помнится.
Из истории цен вытащить дату поступления, в общем случае, нельзя. Цены (прайсы) никак не связаны с поступлениями. Единственное исключение, если при каждом поступлении делать обновление цен в прайсе на дату поступления. Тогда да, дата установки цены будет соответствовать дате поступления. А если пользователи забудут обновить цены при поступлении? Это же автоматом не делается.
48. Самоделкин 2 28.04.14 15:10 Сейчас в теме
49. Самоделкин 2 29.04.14 11:23 Сейчас в теме
(47) vcv, помогите доделать.
Ставил и по FIFO и LIFO все равно ни цен, ни даты нет, что я неправильно сделал?
И можно ли дату партионного учета сдвинуть назад, скажем года на два?
        ТаблицаЦен.НоваяСтрока();
        ТаблицаЦен.Поставщик = ЗапросЦенНоменклатуры.Поставщик;
        ТаблицаЦен.НаименованиеЦен = ЗапросЦенНоменклатуры.ЗакупочнаяЦена;
        ТаблицаЦен.Дата = ЗапросЦенНоменклатуры.ДатаДок;
	ТаблицаЦен.Валюта = ЗапросЦенНоменклатуры.ВалютаВзаиморасчетов;

.....
  ТаблицаЦен.НоваяКолонка("Поставщик",,,,"Поставщик",25);
  ТаблицаЦен.НоваяКолонка("Дата",,,,"Дата",10,"Д ДД.ММ.ГГ");
  ТаблицаЦен.НоваяКолонка("НаименованиеЦен",,,,"Цена",7, "Ч15.2", 2 );
  ТаблицаЦен.НоваяКолонка("Валюта",,,,"Валюта",5 );
  ЗаполнитьТаблицуЦен();
.....
Показать
50. vcv 89 29.04.14 14:14 Сейчас в теме
Дёргать по пустякам метод учета себестоимости не стоит. Это периодическое значение, означающее, как приходуются/списываются партии (учитывается отдельно каждая партия, или обезличенно без партий). Изменение её влияет не на текущее состояние учета, а на проведение документов. Если чего накрутил - посмотри историю этого реквизита и почисть свои эксперименты лишнее.
Для начала посмотри ведомость по партиям с детализацией по партиям. Есть ли партии в отчете, или только "пустые партии"? От этого зависит, как и откуда можно будет собирать желаемую информацию.
Наличие партионного учета делает возможным получение отчетов с информацией: сколько остатка на складе, когда поступило и по какой цене. Но добавляет особенностей в учете себестоимости.
Если нет партионного учета, узнать, когда поступил остаток на складе и по какой цене, в общем случае, нельзя.
51. Самоделкин 2 29.04.14 15:22 Сейчас в теме
(50) vcv, проверил

Для начала посмотри ведомость по партиям с детализацией по партиям. Есть ли партии в отчете, или только "пустые партии"?

получил < свойство партии не задано >, где прописывается свойство партии?
64. Самоделкин 2 05.05.14 13:20 Сейчас в теме
(50) vcv,
Дёргать по пустякам метод учета себестоимости не стоит. Если чего накрутил - посмотри историю этого реквизита и почисть свои эксперименты лишнее.


Как это сделать?
65. vcv 89 05.05.14 13:25 Сейчас в теме
(64) Есть типовая кнопка "История". Или можно открыть справочник собственных юр.лиц, выбрать нужное юр.лицо и нажать на клавиатуре F5.
66. Самоделкин 2 05.05.14 14:22 Сейчас в теме
(65) vcv, все почистил, СПАСИБО!

А как на счет (63)?
52. vcv 89 29.04.14 17:32 Сейчас в теме
Это была детализация по свойствам партий. А нужно по партиям.
53. Самоделкин 2 29.04.14 18:55 Сейчас в теме
(52) vcv, что-то я совсем не понимаю, наверное магнитные бури. Вроде бы все есть.
Прикрепленные файлы:
54. Самоделкин 2 29.04.14 19:30 Сейчас в теме
(52) vcv, вот еще Партии, даже поступление сделал новые.
Прикрепленные файлы:
59. vcv 89 30.04.14 11:47 Сейчас в теме
Забирай. http://1drv.ms/1fPfgW4
Я там немножко распустил руки в справочнике номенклатуры. В другие места лезть не стал. Объедини со своим МДшником только справочник номенклатуры.
60. Самоделкин 2 30.04.14 11:57 Сейчас в теме
(59) vcv, спасибо, все работает идеально. Есть немного смарт-мани, надеюсь не откажитесь?
61. vcv 89 30.04.14 12:55 Сейчас в теме
Да на здоровье. Удачи в борьбе с 1С :)
63. Самоделкин 2 05.05.14 13:15 Сейчас в теме
(61) vcv, вопрос в следующем: хотелось бы такую таблицу цен иметь на вкладке подбора (нарисовать таблицу и прописать код смогу), но проблема в другом - можно ли сделать так чтобы я видел эту таблицу, а продавцы нет?
67. vcv 89 05.05.14 19:48 Сейчас в теме
(63) Самоделкин,
хотелось бы такую таблицу цен иметь на вкладке подбора (нарисовать таблицу и прописать код смогу), но проблема в другом - можно ли сделать так чтобы я видел эту таблицу, а продавцы нет?

А как именно хочется показать таблицу в форме подбора? Если так, что бы лежала на форме и показывала информацию об выбранной номенклатуре, то, боюсь, тормозить сильно будет. А вот сделать кнопочку, показывающую информацию о номенклатуре просто. Кнопка с открытием какой-нибудь обработки, показывающей нужную информацию. Доступ к обработке давать штатными правами в конфигураторе.
68. Самоделкин 2 05.05.14 20:32 Сейчас в теме
(67) vcv, спасибо за совет, на счет обработки я что-то не подумал; комп у меня не слабый, но действительно притормаживает, а на работе вообще комп полудохлый - тормозить будет по страшному.
69. Самоделкин 2 06.05.14 13:41 Сейчас в теме
(67) vcv, обработку написал, не получается привязать ее к текущей номенклатуре. Как это можно сделать?
70. vcv 89 06.05.14 13:43 Сейчас в теме
(69) Самоделкин, открывать её
ОткрытьФорму("Обработка.МояОбработка",ТекущийЭлемент())
В самой обработке номенклатуту получить
Форма.Параметр
71. Самоделкин 2 06.05.14 14:29 Сейчас в теме
(70) vcv, СПАСИБО! Не догадался сюда параметр добавить
ОткрытьФорму("Обработка.МояОбработка",ТекущийЭлемент())
72. Самоделкин 2 30.11.14 18:01 Сейчас в теме
(70) vcv, помогите, не получается получить среднюю цену товара:
			Сумма = 0;
		    СчетчикЦикла = 0;
			Для СчетчикЦикла = 1 По ТаблицаЦен.КоличествоСтрок() Цикл
				Цена = РезультатЗапроса.ЗакупочнаяЦена;
				Остаток = РезультатЗапроса.КоличествоКонОст;
				Сумма = Цена * Остаток;  
			КонецЦикла;
			Сумма = Сумма;

получаю только последнюю сумму. ????????????
Далее вроде бы правильно:
ОбщееКолво = ТаблицаЦен.Итог(5);
СредняяЦена = Сумма / ОбщееКолво;
73. l_user 30.11.14 18:52 Сейчас в теме
(72) Самоделкин,
Извините, что вмешиваюсь в ваш с vcv разговор.
Ошибка в том, что значение переменной "Сумма" вы каждый раз переписываете заново.
Должно быть приблизительно так:
 Сумма = 0;
 СчетчикЦикла = 0;
 Для СчетчикЦикла = 1 По ТаблицаЦен.КоличествоСтрок() Цикл
  Цена = РезультатЗапроса.ЗакупочнаяЦена;
  Остаток = РезультатЗапроса.КоличествоКонОст;
  Сумма = Сумма + Цена * Остаток; // подсчет общей суммы в ценах поступления  
 КонецЦикла;
74. Самоделкин 2 30.11.14 19:00 Сейчас в теме
(73) l_user, извиняться не за что, просто идея была моя, а реализация vcv, поэтому к нему и обратился.
Спасибо, за помощь!
75. Самоделкин 2 30.11.14 20:29 Сейчас в теме
(73) l_user, к сожалению не получилось.
76. vcv 89 30.11.14 20:38 Сейчас в теме
(75) Самоделкин,
Проверяй, во-первых, что содержит таблица. Вполне возможно, что колонки Цена и Остаток содержат не число, а форматированную строку.
ОбщееКолво = ТаблицаЦен.Итог(5) не очень хорошо. Привязываешься к номеру колонки, который может взять и поменяться при пакой-нибудь доработке заполнения таблицы. Лучше брать итог по имени колонки. И, опять таки, проверь, что колонка содержить именно число.
Смотри в отладчике, что и как считается. Или вставь после строки "Сумма = Сумма + Цена * Остаток;" контрольную печать типа "Сообщить("Сумма="+Сумма);".
77. Самоделкин 2 30.11.14 20:56 Сейчас в теме
(76) vcv, вставил промежуточную печать, как Вы и советовали, что получилось видно.

Третья Сумма должна быть 76.
Прикрепленные файлы:
78. vcv 89 30.11.14 21:18 Сейчас в теме
(77) Самоделкин,
Непонятно, почему три строки "Сумма=", когда в таблице значений две строки.
Судя по первой и второй строке контрольной печати, рекомендация из (73) не выполнена.
Попробуй изменить строку так:
Сумма = Сумма + Число(Цена) * Число(Остаток);
И что за вертикальная черка в третьей строке контрольной печати?
И в каком месте стоит "сообщить" которое выводит последние три строки?
79. Самоделкин 2 30.11.14 21:36 Сейчас в теме
(78) vcv,
Непонятно, почему три строки "Сумма=", когда в таблице значений две строки.

все правильно - строки две - две суммы, третья сумма - это, как я понимаю, общая сумма.
Сумма = Сумма + Число(Цена) * Число(Остаток);

Делал именно так.
И что за вертикальная черта в третьей строке контрольной печати?

Просто мышкой щелкнул.
И в каком месте стоит "сообщить" которое выводит последние три строки?

Это после всех циклов, это для меня.
81. vcv 89 01.12.14 08:00 Сейчас в теме
Всё же выложи полный код. Потому что то, что написано в (72) и (73) даже результатов из (77) выдавать не должно.
82. Самоделкин 2 01.12.14 08:15 Сейчас в теме
(81) vcv,
Процедура ЗаполнитьТаблицуЦен()

  ТаблицаЦен.УдалитьСтроки(); 
   Если Форма.Параметр.ТекущийЭлемент().ЭтоГруппа() = 0 Тогда
    ТекНоменклатура = Форма.Параметр.ТекущийЭлемент(); 
	
    ТекстЗапросаЦенНоменклатуры = "
    |Поставщик = Регистр.ПартииНаличие.Партия.Поставщик;
    |ВалютаВзаиморасчетов = Регистр.ПартииНаличие.Партия.ДоговорПоставщика.ВалютаВзаиморасчетов;
    |ЗакупочнаяЦена = Регистр.ПартииНаличие.Партия.ЗакупочнаяЦена;
    |ПриходныйДокумент = Регистр.ПартииНаличие.Партия.ПриходныйДокумент;
    |Количество = Регистр.ПартииНаличие.Количество;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Поставщик без групп;
    |Группировка ВалютаВзаиморасчетов;
    |Группировка ПриходныйДокумент;
    |Группировка ЗакупочнаяЦена;
    |Условие(Номенклатура = ТекНоменклатура);
	|"
	;
    ЗапросЦенНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросЦенНоменклатуры.Выполнить(ТекстЗапросаЦенНоменклатуры) = 1 Тогда 
		РезультатЗапроса = СоздатьОбъект("ТаблицаЗначений");
		ЗапросЦенНоменклатуры.Выгрузить(РезультатЗапроса,0,0);
		РезультатЗапроса.НоваяКолонка("ДатаДок","Дата");
		РезультатЗапроса.ВыбратьСтроки();
		Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
			РезультатЗапроса.ДатаДок = РезультатЗапроса.ПриходныйДокумент.ДатаДок;
		КонецЦикла;
		РезультатЗапроса.Свернуть("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена","КоличествоКонОст");
		РезультатЗапроса.Сортировать("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена");
		РезультатЗапроса.ВыбратьСтроки();
		Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
			ТаблицаЦен.НоваяСтрока();
			ТаблицаЦен.Поставщик = РезультатЗапроса.Поставщик;
			ТаблицаЦен.НаименованиеЦен = РезультатЗапроса.ЗакупочнаяЦена;
			ТаблицаЦен.Дата = РезультатЗапроса.ДатаДок;
			ТаблицаЦен.Валюта = РезультатЗапроса.ВалютаВзаиморасчетов;
			ТаблицаЦен.Остаток = РезультатЗапроса.КоличествоКонОст;
			//ТаблицаЦен.Единица = БазоваяЕдиница;
			
			Сумма = 0;
		      СчетчикЦикла = 0;
			Для СчетчикЦикла = 1 По ТаблицаЦен.КоличествоСтрок() Цикл
				Цена = РезультатЗапроса.ЗакупочнаяЦена;
				Остаток = РезультатЗапроса.КоличествоКонОст;
				Сумма = Сумма + Число(Цена) * Число(Остаток);
				Сообщить("Сумма="+Сумма);
			КонецЦикла;
		КонецЦикла;
	КонецЕсли;
	ОбщееКолво = ТаблицаЦен.Итог(5);
	Сообщить (ОбщееКолво);          
	СредняяЦена =  Сумма1 / ОбщееКолво;
	Сообщить (СредняяЦена);
        КонецПроцедуры
	
Показать
83. l_user 01.12.14 09:59 Сейчас в теме
(82) Самоделкин,
То что вы написали даст вам в итоге не среднюю цену, а что-то совсем другое.
Много непонятного, я исходил из того, что в запросе у вас "ЗакупочнаяЦена" - это числовой реквизит, а не ссылочный.
Например:
Процедура ЗаполнитьТаблицуЦен()

  ТаблицаЦен.УдалитьСтроки(); 
   Если Форма.Параметр.ТекущийЭлемент().ЭтоГруппа() = 0 Тогда
    ТекНоменклатура = Форма.Параметр.ТекущийЭлемент(); 
    
    ТекстЗапросаЦенНоменклатуры = "
    |Поставщик = Регистр.ПартииНаличие.Партия.Поставщик;
    |ВалютаВзаиморасчетов = Регистр.ПартииНаличие.Партия.ДоговорПоставщика.ВалютаВзаиморасчетов;
    |ЗакупочнаяЦена = Регистр.ПартииНаличие.Партия.ЗакупочнаяЦена;
    |ПриходныйДокумент = Регистр.ПартииНаличие.Партия.ПриходныйДокумент;
    |Количество = Регистр.ПартииНаличие.Количество;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Поставщик без групп;
    |Группировка ВалютаВзаиморасчетов;
    |Группировка ПриходныйДокумент;
    |Группировка ЗакупочнаяЦена;
    |Условие(Номенклатура = ТекНоменклатура);
    |"
    ;
    ЗапросЦенНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросЦенНоменклатуры.Выполнить(ТекстЗапросаЦенНоменклатуры) = 1 Тогда 
        РезультатЗапроса = СоздатьОбъект("ТаблицаЗначений");
        ЗапросЦенНоменклатуры.Выгрузить(РезультатЗапроса,0,0);
        РезультатЗапроса.НоваяКолонка("ДатаДок","Дата");
        РезультатЗапроса.ВыбратьСтроки();
        Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
            РезультатЗапроса.ДатаДок = РезультатЗапроса.ПриходныйДокумент.ДатаДок;
        КонецЦикла;
        РезультатЗапроса.Свернуть("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена","КоличествоКонОст");
        РезультатЗапроса.Сортировать("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена");
        РезультатЗапроса.ВыбратьСтроки();
        Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
            ТаблицаЦен.НоваяСтрока();
            ТаблицаЦен.Поставщик = РезультатЗапроса.Поставщик;
            ТаблицаЦен.НаименованиеЦен = РезультатЗапроса.ЗакупочнаяЦена;
            ТаблицаЦен.Дата = РезультатЗапроса.ДатаДок;
            ТаблицаЦен.Валюта = РезультатЗапроса.ВалютаВзаиморасчетов;
            ТаблицаЦен.Остаток = РезультатЗапроса.КоличествоКонОст;
            //ТаблицаЦен.Единица = БазоваяЕдиница;
        КонецЦикла;
    КонецЕсли;
    Сумма = 0;
    СчетчикЦикла = 0;
    ТаблицаЦен.ВыбратьСтроки();
    Пока ТаблицаЦен.ПолучитьСтроку()=1 Цикл
     Сумма = Сумма + ТаблицаЦен.НаименованиеЦен*ТаблицаЦен.Остаток;
     Сообщить("Сумма="+Сумма);
    КонецЦикла;
    ОбщееКолво = ТаблицаЦен.Итог(5);
    Сообщить (ОбщееКолво);          
    СредняяЦена =  Сумма / ОбщееКолво;
    Сообщить (СредняяЦена);
КонецПроцедуры
Показать
84. Самоделкин 2 01.12.14 10:20 Сейчас в теме
(83) l_user, куда только я его не ставил, работает только там, где стоит сейчас.
Прикрепленные файлы:
85. Самоделкин 2 01.12.14 10:31 Сейчас в теме
(83) l_user, извиняюсь, не досмотрел. Вы - гений. Все работает.
С П А С И Б О !!!!!!!!!!!!!!!!!!!!!!
86. vcv 89 01.12.14 10:48 Сейчас в теме
(83) l_user, Только зачем два цикла? Всё идеально делается в одном:
Процедура ЗаполнитьТаблицуЦен()
  ОбщееКолво = 0;
  ОбщаяСумма = 0;
  ТаблицаЦен.УдалитьСтроки(); 
   Если Форма.Параметр.ТекущийЭлемент().ЭтоГруппа() = 0 Тогда
    ТекНоменклатура = Форма.Параметр.ТекущийЭлемент(); 
    
    ТекстЗапросаЦенНоменклатуры = "
    |Поставщик = Регистр.ПартииНаличие.Партия.Поставщик;
    |ВалютаВзаиморасчетов = Регистр.ПартииНаличие.Партия.ДоговорПоставщика.ВалютаВзаиморасчетов;
    |ЗакупочнаяЦена = Регистр.ПартииНаличие.Партия.ЗакупочнаяЦена;
    |ПриходныйДокумент = Регистр.ПартииНаличие.Партия.ПриходныйДокумент;
    |Количество = Регистр.ПартииНаличие.Количество;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |Функция КоличествоКонОст = КонОст(Количество);
    |Группировка Поставщик без групп;
    |Группировка ВалютаВзаиморасчетов;
    |Группировка ПриходныйДокумент;
    |Группировка ЗакупочнаяЦена;
    |Условие(Номенклатура = ТекНоменклатура);
    |"
    ;
    ЗапросЦенНоменклатуры = СоздатьОбъект("Запрос");
    Если ЗапросЦенНоменклатуры.Выполнить(ТекстЗапросаЦенНоменклатуры) = 1 Тогда 
        РезультатЗапроса = СоздатьОбъект("ТаблицаЗначений");
        ЗапросЦенНоменклатуры.Выгрузить(РезультатЗапроса,0,0);
        РезультатЗапроса.НоваяКолонка("ДатаДок","Дата");
        РезультатЗапроса.ВыбратьСтроки();
        Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
            РезультатЗапроса.ДатаДок = РезультатЗапроса.ПриходныйДокумент.ДатаДок;
        КонецЦикла;
        РезультатЗапроса.Свернуть("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена","КоличествоКонОст");
        РезультатЗапроса.Сортировать("Поставщик,ВалютаВзаиморасчетов,ДатаДок,ЗакупочнаяЦена");
        РезультатЗапроса.ВыбратьСтроки();
        Пока РезультатЗапроса.ПолучитьСтроку() = 1 Цикл
            ТаблицаЦен.НоваяСтрока();
            ТаблицаЦен.Поставщик = РезультатЗапроса.Поставщик;
            ТаблицаЦен.НаименованиеЦен = РезультатЗапроса.ЗакупочнаяЦена;
            ТаблицаЦен.Дата = РезультатЗапроса.ДатаДок;
            ТаблицаЦен.Валюта = РезультатЗапроса.ВалютаВзаиморасчетов;
            ТаблицаЦен.Остаток = РезультатЗапроса.КоличествоКонОст;
            //ТаблицаЦен.Единица = БазоваяЕдиница;
            ОбщееКолво = ОбщееКолво + РезультатЗапроса.КоличествоКонОст;
            ОбщаяСумма = ОбщаяСумма + РезультатЗапроса.КоличествоКонОст * РезультатЗапроса.ЗакупочнаяЦена;
        КонецЦикла;
    КонецЕсли;
  КонецЕсли;
  СредняяЦена =  ОбщаяСумма / ОбщееКолво;
  Сообщить (СредняяЦена);
КонецПроцедуры
Показать
87. l_user 01.12.14 10:57 Сейчас в теме
(86) vcv,
Конечно можно.
То Самоделкин:
Вы - гений
. Это точно не про меня.
88. Самоделкин 2 01.12.14 11:38 Сейчас в теме
(86) vcv, у Вас, как всегда, все красивее и четче.
С П А С И Б О !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
62. CheBurator 3120 01.05.14 03:15 Сейчас в теме
924) не без изъянов, но нормально там работает. юзал такие времена когда по одной заявке покупателя исходной - дерево подчиненности на 20-30 листов - вполне обычное дело было. при этом теуыва хуча заказов поставщикам и прочей оабудени. и все вообщем шттано. закавыки есть, но они несмертельные. но по опыту мало кто юзает систеиму заявки-закащзаы, или даже просто вменяемо "заказы"
80. YNik 30.11.14 23:47 Сейчас в теме
Что-то не то, цикл по ТЗ ТаблицаЦен, а внутри цикла выборка из РезультатЗапроса.
Скорее всего, надо и в цикле обращаться к ТаблицаЦен:
Для СчетчикЦикла = 1 По ТаблицаЦен.КоличествоСтрок() Цикл
   ТаблицаЦен.ПолучитьСтрокуПоНомеру(СчетчикЦикла);
   Цена = ТаблицаЦен.ЗакупочнаяЦена;
   Остаток = ТаблицаЦен.КоличествоКонОст;
   Сумма = Сумма + Цена * Остаток; // подсчет общей суммы в ценах поступления  
КонецЦикла;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот