Имя: Пароль:
1C
1С v8
v8: Получить все остатки склада на определенную дату Запросом
,
0 XanderAlex
 
22.11.11
12:59
Всем привет! Мне, новичку, выпала небольшая задачка, прошу вашей помощи.
Есть документ "реализация",в который пользователь сам добавляет запись.Эта запись пустая, т.е. в ней не заполнено никаких реквизитов (товаров). Написанный запрос должен заполнить этот документ товарными остатками по складу. Еще должна быть возможность задавать дату списания на которую получаем остаток; счет учета, на который получаем остаток; и склад, судя по всему, с которого списывается ВЕСЬ товар.
Очень нужно. Спасибо большое отозвавшимся!!!
110 XanderAlex
 
22.11.11
13:54
Starhan эта книга у меня на столе лежит
111 Beduin
 
22.11.11
13:54
(107) Угу. Только полное название вида этих регистров.
112 Vitally Programmer
 
22.11.11
13:54
(0)Кстати,как вариант,можно воспользоваться соответствующим типовым отчетом(там уже есть все настройки) и потом просто прочитать данные с этого отчета и закинуть их в ТЧ
113 Wobland
 
22.11.11
13:55
(112) это раньше так можно было. теперь в универсальном отчёте сам нуралиев ногу поломает
114 Reset
 
22.11.11
13:56
(112) Ага, распечатать на притере, распознать через OCR, импортировать в эксель, а оттуда через ADO в 1С.
115 Vitally Programmer
 
22.11.11
13:56
(113)Я имею ввиду из табличного поля отчета прочитать данные,или корявый вариант-выгрузить в эксель и прочитать с экселя
116 tdm
 
22.11.11
13:57
(0) еще вариант - посомтреть как реализован документ "Инвентаризация ТМЦ"
117 Reset
 
22.11.11
13:57
(115) :rofl:
118 Wobland
 
22.11.11
13:57
(116) да!
119 tdm
 
22.11.11
13:58
(115) хыы))) разовью тему - из отчета вгрузитьв эксель из экселя загрузить в документ типовой обработкой "Загрузка данных из Табличногодокумента" )))
120 Vitally Programmer
 
22.11.11
13:58
(117)Чито такое?
121 tdm
 
22.11.11
13:58
(119) + не строчки кода не потребуется)))
122 Wobland
 
22.11.11
13:59
(120) rolling on floor laughing
123 XanderAlex
 
22.11.11
14:00
"из отчета вгрузитьв эксель из экселя загрузить в документ типовой обработкой "Загрузка данных из Табличногодокумента"
124 XanderAlex
 
22.11.11
14:01
OMG %-(
125 Vitally Programmer
 
22.11.11
14:01
(0)Запули в типовой отчет кнопочку и считывай данные,а потом загружай их в тч-минимум надо знать
126 Wobland
 
22.11.11
14:01
(124) это юмор такой. впрочем, вполне жизнеспособный
127 Wobland
 
22.11.11
14:02
кстати, о юморе. Груви ветку переименовал? ;)
128 XanderAlex
 
22.11.11
14:02
а кто ж еще)
129 Vitally Programmer
 
22.11.11
14:03
(125)+правда надо запастись парой матерных слов ,на случай если директору не понравится
130 XanderAlex
 
22.11.11
14:04
ладно, начну пожалуй... Информации мне предоставили более чем достаточно, еще бы разобраться в ней=) Благодарю вас!!!
131 Wobland
 
22.11.11
14:05
(130) ждём следующих веток. префикс названия ветки ты знаешь ;)
132 XanderAlex
 
22.11.11
14:06
теперь да=) но я думаю я в очень скором времени я продолжу свое повествование здесьXD
133 GROOVY
 
22.11.11
14:08
Надеюсь намек на то что следующие ветки с подобным названием будут убиты всем понятен.
134 XanderAlex
 
22.11.11
14:36
пока копнул сюда: верно?

Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Склад",                 СписокСкладов);
   Запрос.УстановитьПараметр("МОЛ",                 ОтветственноеЛицо);
   Запрос.УстановитьПараметр("КонецПериода",         Дата);
   Запрос.УстановитьПараметр("Организация",         Организация);
   Запрос.УстановитьПараметр("ВидСубконто",         ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
   Запрос.УстановитьПараметр("ПорядокСубконтоК",     ПорядокСубконтоК);
   Запрос.УстановитьПараметр("ПорядокСубконтоС",     ПорядокСубконтоС);
   Запрос.УстановитьПараметр("ПорядокСубконтоМОЛ",     ПорядокСубконтоМОЛ);
   Запрос.УстановитьПараметр("ИсклСчета",             МассивИсклСчетов);
   ТекстЗапросаИнвентаризация = "
   |ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Счет              КАК Счет,
   |    ХозрасчетныйОстатки.Счет.Порядок      КАК Порядок,
   |    ХозрасчетныйОстатки.Субконто1         КАК Номенклатура,
   |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
   |    ХозрасчетныйОстаткиС.СуммаОстаток              КАК СуммаВсего,
   |    ХозрасчетныйОстаткиС.КоличествоОстаток        КАК КоличествоВсего,
   |    ХозрасчетныйОстатки.КоличествоОстаток КАК Количество
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоК, Организация В (&Организация) " + ТекстУсловияК + ") КАК ХозрасчетныйОстатки
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоС, Организация В (&Организация) " + ТекстУсловияС + ") КАК ХозрасчетныйОстаткиС
   |        ПО ХозрасчетныйОстатки.Счет = ХозрасчетныйОстаткиС.Счет    И ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОстаткиС.Субконто1
   |";
   
   Если (НЕ ЗначениеЗаполнено(Склад)) И (ЗначениеЗаполнено(ОтветственноеЛицо)) Тогда
       ТекстЗапросаИнвентаризация = ТекстЗапросаИнвентаризация + "
       |ОБЪЕДИНИТЬ ВСЕ
       |
       |ВЫБРАТЬ
       |    ХозрасчетныйОстатки.Счет,
       |    ХозрасчетныйОстатки.Счет.Порядок,
       |    ХозрасчетныйОстатки.Субконто1,
       |    ХозрасчетныйОстатки.Субконто1.БазоваяЕдиницаИзмерения,
       |    ХозрасчетныйОстатки.СуммаОстаток,
       |    ХозрасчетныйОстатки.КоличествоОстаток,
       |    ХозрасчетныйОстатки.КоличествоОстаток
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , &ПорядокСубконтоМОЛ, Организация В (&Организация) И Субконто2 В (&МОЛ)) КАК ХозрасчетныйОстатки
       |
       |ГДЕ
       |  НЕ (ХозрасчетныйОстатки.Счет В ИЕРАРХИИ (&ИсклСчета))
       |";
   КонецЕсли;
   ТекстЗапросаИнвентаризация = ТекстЗапросаИнвентаризация + "
   |
   |УПОРЯДОЧИТЬ ПО
   |    Порядок";
   
   Запрос.Текст =ТекстЗапросаИнвентаризация;

   Выборка   = Запрос.Выполнить().Выбрать();

   ЭтоНТТ   = (Склад.ВидСклада = Перечисления.ВидыСкладов.НеавтоматизированнаяТорговаяТочка);
   ДатаДока  = Дата;
   ТипЦен    = Склад.ТипЦенРозничнойТорговли;

   Пока Выборка.Следующий() Цикл
       
       Если Выборка.Количество = NULL Тогда
           Продолжить;
       КонецЕсли;
       
       Если Выборка.Количество <= 0 Тогда
           Продолжить;
       КонецЕсли;

       СтрокаТабличнойЧасти = Товары.Добавить();

       СтрокаТабличнойЧасти.Номенклатура     = Выборка.Номенклатура;
       СтрокаТабличнойЧасти.Количество       = Выборка.Количество;
       СтрокаТабличнойЧасти.СчетУчета          = Выборка.Счет;
       СтрокаТабличнойЧасти.КоличествоУчет   = СтрокаТабличнойЧасти.Количество;

       Цена = ?(Выборка.КоличествоВсего = 0 ИЛИ Выборка.КоличествоВсего = NULL, 0, Выборка.СуммаВсего / Выборка.КоличествоВсего);
       
       СтрокаТабличнойЧасти.СуммаУчет        = Цена*Выборка.Количество;
       СтрокаТабличнойЧасти.Сумма            = СтрокаТабличнойЧасти.СуммаУчет;
       СтрокаТабличнойЧасти.Цена             = Цена;

       Если ЭтоНТТ Тогда

           СтрокаТабличнойЧасти.ЦенаВРознице = Ценообразование.ПолучитьЦенуНоменклатуры(СтрокаТабличнойЧасти.Номенклатура,
                                               ТипЦен, ДатаДока, мВалютаРегламентированногоУчета, 1, 1);

       КонецЕсли;

   КонецЦикла;

КонецПроцедуры // ЗаполнитьПоОстаткамНаСкладе()
135 Wobland
 
22.11.11
14:51
(134) откуда взял? из инвентаризации? при беглом осмотре вроде ничего выглядит. теперь сделай так, чтобы СтрокаТабличнойЧасти = Товары.Добавить(); сработало из внешней обработки
136 XanderAlex
 
22.11.11
15:11
да, из инвентаризации. пишу по (51)
137 XanderAlex
 
22.11.11
15:24
почему пишет ошибку что Переменная не определена (ДатаДокумента) и не только ДатаДокумента???
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ХозрасчетныйОстатки.КоличествоОстаток,
   |    ХозрасчетныйОстатки.Номенклатура
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(
   |            &ДатаОтч,
   |            Склад = &ВыбСклад
   |            И Номенклатура В ИЕРАРХИИ (&ВыбГруппа)) КАК ХозрасчетныйОстатки
   |ГДЕ
   |    ХозрасчетныйОстатки.КоличествоОстаток > 0";
   
   Запрос.УстановитьПараметр("ДатаОтч",ДатаДокумента);
   Запрос.УстановитьПараметр("ВыбСклад",ВыбСклад);
   Запрос.УстановитьПараметр("ВыбГруппа",ВыбГруппа);
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Док=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
   Док.Дата = ДатаДокумента;
   Док.ВидОперации      = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия;
   Док.ВидПоступления   = Перечисления.ВидыПоступленияТоваров.НаСклад;
   Док.Организация      = ВыбФирма;
   Док.СкладОрдер          = ВыбСклад;
   Док.ВалютаДокумента  = ВалРуб.Ссылка;
   Док.КурсВзаиморасчетов        = 1;
   Док.КратностьВзаиморасчетов   = 1;
   Док.Контрагент=ВыбКонтрагент;
   Док.ДоговорКонтрагента=ВыбКонтрагент.ОсновнойДоговорКонтрагента;
   Док.Ответственный = глЗначениеПеременной("глТекущийПользователь");
   Док.ОтражатьВБухгалтерскомУчете=Истина;
   Док.ОтражатьВУправленческомУчете=Истина;
   Док.ОтражатьВНалоговомУчете=Истина;
   Док.УчитыватьНДС = Истина;
   Док.СуммаВключаетНДС = Истина;
   Док.Комментарий  = "Создан обработкой дата "+ТекущаяДата();
   СчетаУчета = БухгалтерскийУчетРасчетовСКонтрагентами.ПолучитьСчетаРасчетовСКонтрагентом(Док.Организация, Док.Контрагент, Док.ДоговорКонтрагента);
   Док.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
   Док.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
   Док.СчетУчетаРасчетовПоТаре        = СчетаУчета.СчетУчетаТарыПокупателя;
   
   Пока Выборка.Следующий() Цикл
       СтрТовары=Док.Товары.Добавить();
       СтрТовары.Номенклатура=Выборка.Номенклатура;
       СтрТовары.Количество=Выборка.КоличествоОстаток;
       СтрТовары.ЕдиницаИзмерения = СтрТовары.Номенклатура.ЕдиницаХраненияОстатков;
       СтрТовары.Коэффициент = 1;
       СтрТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
       СтрТовары.Цена=180;
       СтрТовары.Сумма=СтрТовары.Цена*СтрТовары.Количество;
       
       СтрТовары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;
       СтрТовары.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;
       СтрТовары.СчетУчетаНУ = ПланыСчетов.Налоговый.ТоварыНаСкладах;
       
       СуммаНДС=Окр(СтрТовары.Сумма*18/118,2);
       СтрТовары.СуммаНДС = СуммаНДС;
       
   КонецЦикла;
   //Док.ЗаполнитьСчетаУчетаВТабЧасти(док.Товары,"товары",истина,истина);

   Док.Записать(РежимЗаписиДокумента.Проведение);
   
   Сообщить("Создан документ Поступление №"+СокрЛП(док.Номер)+" от "+СокрЛП(Формат(Док.Дата,"ДФ=dd.MM.yyyy")));
138 hhhh
 
22.11.11
15:33
переиенную ДатаДокумента не определил.
139 Vitally Programmer
 
22.11.11
15:47
(137)Если справишься,можешь смело лепить себе памятник
140 XanderAlex
 
22.11.11
15:50
&ДатаОтч,
   |            Склад = &ВыбСклад
   |            И Номенклатура В ИЕРАРХИИ (&ВыбГруппа)) КАК ХозрасчетныйОстатки
а как же это?
141 Error pro
 
22.11.11
15:51
ДатаДокумента = ТекущаяДата()
142 Vitally Programmer
 
22.11.11
15:51
(140)Ты уже начал лепить себе памятник,или наложил уже материала ,из которого будешь его лепить?
143 XanderAlex
 
22.11.11
15:53
начал потихоньку)
144 ErrorEd88
 
22.11.11
15:54
Вот простой отчет для БП 2.0 делал когда-то: http://infostart.ru/public/85896/
145 Vitally Programmer
 
22.11.11
15:56
(143)Соетую так-грозный взгляд вдаль,рука устремлена в пучну ненастья ,зубы оскалены,в реку клава,за спиной монитор висити Надпись на постаменте "Нас не подъ*бешь!"
146 Найч
 
22.11.11
16:00
(137)неплохо, я, помню, такой быдлокод лепил когда начинал...
147 Найч
 
22.11.11
16:02
Док.Записать(РежимЗаписиДокумента.Проведение);
без
Док.ЗаполнитьСчетаУчетаВТабЧасти(док.Товары,"товары",истина,истина);
не сработает, пиши
попытка
   Док.Записать(РежимЗаписиДокумента.Проведение);
Исключение
   Док.Записать(РежимЗаписиДокумента.Запись);
   Сообщить("Провести не удалось");
148 XanderAlex
 
23.11.11
14:09
ErrorEd88, спасибо огромно, это то что нужно! Изменю под свою задачу
149 Wobland
 
23.11.11
14:11
(148) у тебя ж утром срок вышел, не?
150 marvak
 
23.11.11
14:21
блин, да приведите ему кто-нить уже пример запроса к регистру бухии!
151 zelebobi4
 
23.11.11
14:43
А разве корректней будет получать остатки не на дату, а на момент времени документа?
152 zelebobi4
 
23.11.11
14:43
*А разве НЕ корректней будет получать остатки не на дату, а на момент времени документа?
153 XanderAlex
 
23.11.11
16:08
я так и сделал. Получаю дату на момент времени документа:

Процедура КнопкаПоказатьОстаткиНажатие(Кнопка)
   Если Не ЗначениеЗаполнено(ЭтотОбъект.Организация) Тогда Предупреждение("Укажите Организацию, по которой нужна информация") Иначе
   ЭлементыФормы.Результат.Очистить();
   Если ЭтотОбъект.Группы = Истина Тогда
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Период",ЭтотОбъект.ТекущаяДата);
   Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация);
   Запрос.УстановитьПараметр("Склад", ЭтотОбъект.Склад);
   Запрос.УстановитьПараметр("НоменклатурнаяГруппа", ЭтотОбъект.НоменклатурнаяГруппа);
   Запрос.УстановитьПараметр("Номенклатура", ЭтотОбъект.Номенклатура);
   Запрос.УстановитьПараметр("ТипЦенПродажи", ЭтотОбъект.ТипЦенПродажи);
   Запрос.Текст = "ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
   |    ХозрасчетныйОстатки.Субконто1.Родитель КАК Группа,
   |    ЕстьNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК Количество,    
   |    ЕстьNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
   |   ЕстьNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) * ЕстьNULL(ЦеныНоменклатуры.Цена, 0) КАК Сумма
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) ИЛИ Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы) ИЛИ Счет = Значение(ПланСчетов.Хозрасчетный.ГотоваяПродукция), , Организация = &Организация
   |            " + ?(ЗначениеЗаполнено(ЭтотОбъект.НоменклатурнаяГруппа), "И Субконто1.НоменклатурнаяГруппа = &НоменклатурнаяГруппа", "") + "
   |           " + ?(ЗначениеЗаполнено(ЭтотОбъект.Склад), "И (Субконто1 = &Склад ИЛИ Субконто2 = &Склад ИЛИ Субконто3 = &Склад)", "") + "
   |           " + ?(ЗначениеЗаполнено(ЭтотОбъект.Номенклатура), "И (Субконто1 = &Номенклатура Или Субконто1.Родитель = &Номенклатура)", "") + ") КАК ХозрасчетныйОстатки
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦенПродажи) КАК ЦеныНоменклатуры
   |        ПО ХозрасчетныйОстатки.Субконто1 = ЦеныНоменклатуры.Номенклатура
   |УПОРЯДОЧИТЬ ПО
   |    ХозрасчетныйОстатки.Субконто1.Родитель
   | Автоупорядочивание";

   Выборка = Запрос.Выполнить().Выбрать();
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.Вывести();    
   
КонецЕсли;
   КонецЕсли;
КонецПроцедуры

Только не понимаю, почему не выводит "ТабДокумент.Вывести();"
154 XanderAlex
 
23.11.11
16:14
Только не понимаю, почему не выводит "ТабДокумент.Вывести();" ошибок нету
155 Wobland
 
23.11.11
16:25
(154) навскидку ТабДок.Показать() сделал?
156 Wobland
 
23.11.11
16:26
пля, открыл код... ТабДок мало показать, его ещё заполнить надо. к чему тут ваще ТабДок? Выборка из запроса тебе тут зачем, если ты её нигде не употребляешь?
157 XanderAlex
 
23.11.11
16:32
прошу прощения, от сюда видно, что документ только создал, и сразу вывожу. Но как его заполнить?
" ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.Вывести(); "
158 Wobland
 
23.11.11
16:44
(157) вот тебе ещё заготовка:
Макет=ПолучитьМакет();
Область=Макет.ПолучитьОбласть;
Цикл
 Область.Параметры.Заполнить();
 или Область.Параметр=
 ТабДок.Вывести(Область);
КонецЦикла;
ТабДок.Показать();
159 XanderAlex
 
23.11.11
16:45
спасибо, сейчас сделаю
160 Рыцарь
 
23.11.11
16:50
это экспресс-обучение 1С? :)
161 GROOVY
 
23.11.11
16:53
Экспресс обучение это от 50000 за неделю. И гарантированный результат. Не то что тут.
162 zelebobi4
 
23.11.11
17:01
(153)
Гм. Посмотри в СП что такое МоментВремени и чем он отличается от даты.
163 XanderAlex
 
23.11.11
18:01
Всем огромное спасибо!! Как вывести товар я разобрался, остается его списать. Отразить в документе и провести по 41 счету, совсем ерунда XD...

Макет = ПолучитьМакет("ОстаткиВЦенахПродажи");                  
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.Период=Формат(ЭтотОбъект.Дата, "ДЛФ=DD");
   ТабДокумент.Вывести(ОбластьМакета);                                                                                          
   ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
   Сч = 0;
   ИтогоСумма=0;
   
   Пока Выборка.Следующий() Цикл
       
       Сч=Сч+1;
       ОбластьМакетаСтрока.Параметры.Заполнить(Выборка);
       ОбластьМакетаСтрока.Параметры.НомерСтроки = Сч;
       ИтогоСумма = ИтогоСумма + Выборка.Сумма;
       ТабДокумент.Вывести(ОбластьМакетаСтрока);
       
   КонецЦикла;
   
   ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого");
   ОбластьМакетаИтого.Параметры.ИтогоСумма = ИтогоСумма;
   ТабДокумент.Вывести(ОбластьМакетаИтого);
   ЭлементыФормы.Результат.Вывести(ТабДокумент);
164 XanderAlex
 
24.11.11
12:28
вообще никаких соображений.. Знаю точно, что программа должна создать документ в "Реализация товаров и услуг" и записать туда то, что я вывел в созданной выше процедуре, а именно, заполнить все реквизиты в ТЧ "Реализация товаров и услуг"
165 Wobland
 
24.11.11
12:39
(164) всё сражаешься? зачем выводил то?
следующая заготовка
док=Документы.Реализация.СоздатьДокумент();
док.Дата=
док.ЧтоТоЕщёВозможно=
Пока Выборка.Следующий() Цикл
 НоваяСтрока=док.Товары.Добавить();
 НоваяСтрока.Номенклатура=Выборка.Номенклатура;
 ...
КонецЦикла;
//или вместо цикла док.Товары.Загрузить(Запрос.Выполнить().Выгрузить())

док.Записать();
166 XanderAlex
 
24.11.11
12:43
сражаюсь)спасибо! Уж очень интересно стало сделать до конца. А выводил, чтоб можно было посмотреть, сколько товаров и на каком складе они
167 Wobland
 
24.11.11
12:45
(166) заведи себе консоль запросов для этого. ну хоть в ТабДок выводить научился ;)
168 XanderAlex
 
24.11.11
13:16
еще не научился) документ не создает

док=Документы.РеализацияТоваровУслуг.СоздатьДокумент();
док.Дата= ТекущаяДата();
док.Склад = ЭтотОбъект.Склад;
//Пока Выборка.Следующий() Цикл
 //НоваяСтрока=док.Товары.Добавить();
 //НоваяСтрока.Номенклатура=Выборка.Номенклатура;
 //КонецЦикла;
док.Товары.Загрузить(Запрос.Выполнить().Выгрузить());

док.Записать();
169 Wobland
 
24.11.11
13:17
ЭтотОбъект - это что? Обработка? есть у неё реквизит Склад? Товары.Загрузить() будет работать, если имена полей в результате запроса совпадают и именами реквизитов ТЧ
170 XanderAlex
 
24.11.11
13:20
Склад, это реквизит на форме документа. Хотел чтобы он заполнялся из полученных данных. Склад я выбрал после точки ЭтотОбъект.
Но сам факт, что документ не создается даже пустой
171 XanderAlex
 
24.11.11
13:21
а насчет Товары.Загрузить()  это я понял)) все совпадает
172 Wobland
 
24.11.11
13:24
док=Документы.РеализацияТоваровУслуг.СоздатьДокумент();
док.Дата= ТекущаяДата();
док.Записать();

так не создаётся? не верю!
173 XanderAlex
 
24.11.11
13:28
Извините!! Моя глупость! Проверил Отбор -- Там куча документов)
174 Wobland
 
24.11.11
13:30
(173) +1 к опыту ;)
175 XanderAlex
 
24.11.11
13:32
Точно!!) спасибо огромное, с этим всем разобрался, все заполняет! а радости то....)
176 Wobland
 
24.11.11
13:34
Пилоты молчат, смотрят на звезды,
Задание выполнено успешно.
Все улыбаются.
©БГ

PS это вопрос, выполнено задание?
177 XanderAlex
 
24.11.11
13:36
практически. Думаю уж заполнить все подчеркнутые поля и провести документ я смогу)
178 Wobland
 
24.11.11
13:45
3 дня. что там Груви про неделю и 50 тыр говорил? ;)
179 XanderAlex
 
24.11.11
13:54
тут море всего..., но на сколько мне известно такое задание делается за 20 мин))
180 Wobland
 
24.11.11
14:01
я готов сделать это задание за 19 минут (вспомнился Пельш)
181 XanderAlex
 
24.11.11
14:16
хах) а я вот что-то опять мучатся стал... с заполнением цен)
182 Wobland
 
24.11.11
14:17
Ценообразование.ПолучитьЦенуНоменклатуры() тебе в помощь
183 Wobland
 
24.11.11
14:18
а в бухии скорее всего такого нет
184 XanderAlex
 
24.11.11
14:39
да да да!!) получилось) Только я не очень понял что значит ЛЕВОЕ СОЕДИНЕНИЕ)

Запрос.Текст = "ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
   |    ЕстьNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК Количество,
   |    ЕстьNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
   |   ЕстьNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) * ЕстьNULL(ЦеныНоменклатуры.Цена, 0) КАК Сумма
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары) ИЛИ Счет.Родитель = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы) ИЛИ Счет = Значение(ПланСчетов.Хозрасчетный.ГотоваяПродукция), , Организация = &Организация
   |           " + ?(ЗначениеЗаполнено(ЭтотОбъект.Склад), "И (Субконто1 = &Склад ИЛИ Субконто2 = &Склад ИЛИ Субконто3 = &Склад)", "") + "
   |           " + ?(ЗначениеЗаполнено(ЭтотОбъект.Номенклатура), "И (Субконто1 = &Номенклатура Или Субконто1.Родитель = &Номенклатура)", "") + ") КАК ХозрасчетныйОстатки
   |   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
   |    ПО ХозрасчетныйОстатки.Субконто1 = ЦеныНоменклатуры.Номенклатура
   |   УПОРЯДОЧИТЬ ПО
   |ХозрасчетныйОстатки.Субконто1
   | Автоупорядочивание";
185 XanderAlex
 
24.11.11
14:40
только один недочет, она выводит все типы цен сразу)
186 Wobland
 
24.11.11
14:42
открой для себя документацию
ЛЕВОЕ [ВНЕШНЕЕ] СОЕДИНЕНИЕ означает, что в результат запроса надо включить комбинации записей из обеих исходных таблиц, которые соответствуют указанному условию. Но, в отличие от внутреннего соединения, в результат запроса надо включить также еще и записи из первого (указанного слева от слова СОЕДИНЕНИЕ) источника, для которых не найдено соответствующих условию записей из второго источника.
187 Wobland
 
24.11.11
14:42
+(186) и параметры вирт. таблиц. в параметрах регистра что-то типа ТипЦен=&ТипЦен надо сделать
188 Wobland
 
24.11.11
14:43
ну и дата цен имеет значение
189 Визард
 
24.11.11
14:45
(185) зайди к ГРУВИ на сайт у него там ного интересной инфы.
http://chistov.spb.ru/
190 XanderAlex
 
24.11.11
14:48
про соединение я не там искал.. ну про значок "&" ничего не нашел, я так понимаю это ссылка?
191 Wobland
 
24.11.11
14:50
(190) это параметр запроса
192 Wobland
 
24.11.11
14:51
ага, а *Период - указатель ;)
193 XanderAlex
 
24.11.11
14:52
=)) ясно
194 XanderAlex
 
24.11.11
14:57
в принципе, я знаю как организовать выбор типа цен. Но я не хочу этого. Пусть будет просто выводить одну цену.. Скажем, розничную.. хоть это и не корректно, но чтоб сдать это задание пойдет)))) а на счет вопроса (149) так начальник куда то пропал) есть время
195 Glime
 
24.11.11
14:58
(184) а ты с запросами к БД вообще знаком? Причем без разницы к каким(SQL, Oracal, MySQL)?
196 Wobland
 
24.11.11
15:00
(194) имхо он и должен одну брать. какую - пускай заказчик решает
197 XanderAlex
 
24.11.11
15:05
(195) еще в колледже проходил...
198 Glime
 
24.11.11
15:12
(197) а че тогда за вопрос ЛЕВОЕ СОЕДИНЕНИЕ?
199 XanderAlex
 
24.11.11
15:13
потому что мало что помню с курсов.. всего по SQL было где то уроков 5-6
200 Glime
 
24.11.11
15:13
(197) все отличие в том что ты работаешь не напрямую с таблицами, а с обьектами
201 Glime
 
24.11.11
15:19
(199) господи, это же в каком ПТУ таких готовят? Если ты всерьез собираешься зарабатывать на кусок хлеба работай с 1С ты должен знать, как и в любом языке:
1. Язык программирования(включая язык запросов), его синтаксис, конструкции
2. Понимать сущность объектов 1С(чем отличается объект МД Справочник, от ОМД Документ и от Регистра), какие есть методы работы с ОМД и их свойства
3. Понимать экономическую сущность проводок, операций или расчетов, в противном случае как кодера тебе цена макс 25 шт в базарный день
202 XanderAlex
 
24.11.11
15:24
(201) Умник... По большому счету, тогда меня не очень интересовали БД. А все что связано с 1С, так все впереди еще
203 XanderAlex
 
24.11.11
15:25
Glime, вспомните свой первый день в этой программе
204 Glime
 
24.11.11
15:32
гы, я когда начинал работать была еще 1С 6.0 под DOS, и вообще то я переходил на 1С с паскаля(неплохо знал еще фартран), а так же очень хорошо писал запросы к БД(SQL), для меня как раз было тяжело писать запросы на 7-ке(застрелите меня сразу, если попросите вспомнить как это делается, так как было это как страшный сон), и параллель получал втрое высшее, экономическое
205 XanderAlex
 
24.11.11
15:37
вот и я с паскаля прехожу.. а SQLку говорили мне УЧИ=) не, ну я помню у нас была база, к которой мы подключались и работали там, помню что с запросами тоже не плохо было, т.к. по бд у меня итоговая 5. Только не помню я их уже. Учил только на урок и все
206 XanderAlex
 
24.11.11
15:38
тем более с армией все забудешь нахрен=)))
207 stix2010
 
24.11.11
15:38
(0) бюджет озвучьте?
208 XanderAlex
 
24.11.11
15:42
(207) какой бюджет?
209 stix2010
 
24.11.11
15:46
Тогда сам... когда я первый раз в программе был мне тоже никто не помогал
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.