|
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
|
Тогда сам... когда я первый раз в программе был мне тоже никто не помогал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |