
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
![]() |
Сообщ.
#1
,
|
|
Как можно строку "08 сентября 2015" передать как дату в 1С? Я читал что можно скормить такой формат : ГГГГММДДччммсс’ или ‘ГГГГ.ММ.ДД:чч:чч:сс’ или разделенный запятыми. Неужели нужно строку вручную парсить? В Delphi например такая строка скармливается хорошо.
|
Сообщ.
#2
,
|
|
|
Ну тут все намного хуже. Можно через СтрЗаменить поизгаляться, меняя строку месяца на число, потом уже проще.
|
![]() |
Сообщ.
#3
,
|
|
фигово. простые операции занимают много времени
![]() Чтобы не плодить тему ещё возник вопрос: 1 Бухгалтерия 3,0 управляемые формы, на форме ряд реквизитов и 2 кнопки. По 1-й кнопке данные заполняют реквизиты(с возможностью редактирования пользователем), по 2-й обрабатываются. Среди получаемых данных есть 2-х мерный массив строк. В какой реквизит формы мне проще всего загрузить этот массив? Или если это трудно, то как мне из одной процедуры, в которой формируются данные передать данные в другую, если 2-я процедура должна запускаться по кнопке 2? 2 Создаю документ реализацию товаров и услуг. Никак не удается передать банковский счет организации, даже по коду ![]() ![]() НовыйДок.БанковскийСчетОрганизации = Справочники.БанковскиеСчета.НайтиПоКоду("40702810555050110387"); То-же самое и с ![]() ![]() НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.ТОРГ12; |
Сообщ.
#4
,
|
|
|
Цитата ^D^ima @ Среди получаемых данных есть 2-х мерный массив строк. В какой реквизит формы мне проще всего загрузить этот массив? Создай реквизит с типом ТаблицаЗначений Цитата ^D^ima @ 2 Создаю документ реализацию товаров и услуг. А полный кусок кода? Там значения в создаваемый документ надо передавать через параметры открытия формы. |
![]() |
Сообщ.
#5
,
|
|
Цитата evGenius @ А полный кусок кода? Там значения в создаваемый документ надо передавать через параметры открытия формы. ![]() ![]() &НаСервере процедура РаботаНаСервере(ФормаПолучатель,ФормаДатаОтгрузки,ФормаОбщаяСуммаДокумента,ФормаНомерСчета , МаксТовара ,ЕстьТовары, ЕстьУслуги, ТЗ); НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); НовыйДок.Контрагент = Справочники.Контрагенты.НайтиПоРеквизиту("ИНН",ФормаИНН); НовыйДок.Ответственный = Пользователи.ТекущийПользователь(); НовыйДок.Комментарий ="накладная № "+ФормаНомерДокумента +" от "+ФормаДатаОтгрузки; НовыйДок.Организация =Справочники.Организации.ОрганизацияПоУмолчанию(Пользователи.ТекущийПользователь()); НовыйДок.Дата = ТекущаяДата();//Дата(ДатаОтгрузки); НовыйДок.УстановитьНовыйНомер(); НовыйДок.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб."); НовыйДок.БанковскийСчетОрганизации = Справочники.БанковскиеСчета.НайтиПоКоду("40702810555050110387");// БанковскиеСчетаОрганизации(НовыйДок.Организация,НовыйДок.ВалютаДокумента НовыйДок.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; НовыйДок.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); НовыйДок.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"); НовыйДок.УстановитьВремя(РежимАвтоВремя.ТекущееИлиПоследним); НовыйДок.ДокументБезНДС = истина; //???НовыйДок.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Дата",Дата(ФормаДатаДоговора)); НовыйДок.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Номер",ФормаНомерСчета); если (ЕстьТовары = истина ) и (ЕстьУслуги = истина) тогда НовыйДок.ВидОперации =Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия; НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.ТОРГ12; Иначе если ЕстьТовары = истина тогда НовыйДок.ВидОперации =Перечисления.ВидыОперацийРеализацияТоваров.Товары; НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.ТОРГ12; Иначе если ЕстьУслуги = истина тогда НовыйДок.ВидОперации =Перечисления.ВидыОперацийРеализацияТоваров.Услуги; НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.АктВыполненныхРабот; КонецЕсли; КонецЕсли; КонецЕсли; Для сч=1 по МаксТовара цикл если ТЗ[сч][4] =истина тогда НовыйТовар = НовыйДок.Товары.Добавить(); НовыйТовар.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(ТЗ[сч][0]); НовыйТовар.Количество = ТЗ[сч][1]; НовыйТовар.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; НовыйТовар.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Готовая продукция"); НовыйТовар.СчетУчета = ПланыСчетов.Хозрасчетный.НайтиПоКоду("43"); НовыйТовар.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"); НовыйТовар.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); НовыйТовар.Цена = ТЗ[сч][2]; НовыйТовар.Сумма =ТЗ[сч][3]; КонецЕсли; КонецЦикла; Если ЕстьУслуги = истина тогда НовыйУслуги = НовыйДок.Услуги.Добавить(); НовыйУслуги.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Услуги IT (Ингит)"); НовыйУслуги.Содержание = НовыйУслуги.Номенклатура; НовыйУслуги.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; НовыйУслуги.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"); НовыйУслуги.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); НовыйУслуги.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); Для сч=1 по МаксТовара цикл если ТЗ[сч][4] = ложь тогда НовыйУслуги.Сумма = НовыйУслуги.Сумма + ТЗ[сч][3]; Сообщить(ТЗ[сч][3]); КонецЕсли; КонецЦикла; НовыйУслуги.Цена = НовыйУслуги.Сумма; КонецЕсли; НовыйДок.Записать(РежимЗаписиДокумента.Проведение); КонецПроцедуры |
![]() |
Сообщ.
#6
,
|
|
Цитата ^D^ima @ НовыйДок.БанковскийСчетОрганизации = Справочники.БанковскиеСчета.НайтиПоКоду("40702810555050110387"); Не понял при чем тут Найти по коду??? Номер счета хранится не в коде, а в реквизите НомерСчета. И этот реквизит не индексируется, так что НАйтиПоРеквизиту тоже не пройдет. Ищи запросом, при этом ограничивай владельцем и банком. |
![]() |
Сообщ.
#7
,
|
|
Rust
а НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.ТОРГ12; или НовыйДок.ВидЭлектронногоДокумента = Перечисления.ВидыЭД.АктВыполненныхРабот; не вставляется тоже в документ, там просто пусто. Как добавить этот реквизит в новый документ? |
![]() |
Сообщ.
#8
,
|
|
В модуле формы ФормаДокументаОбщая есть такой кусок кода
![]() ![]() &НаСервере Процедура УстановитьВидЭД() ДоступныеЗначения = Документы.РеализацияТоваровУслуг.ПолучитьДоступныеВидыЭдПоВидуОперации(Объект.ВидОперации); Элементы.ВидЭД.СписокВыбора.Очистить(); Для Каждого ЭлементСписка Из ДоступныеЗначения Цикл Элементы.ВидЭД.СписокВыбора.Добавить(ЭлементСписка.Значение, ЭлементСписка.Представление); КонецЦикла; Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Объект.ВидЭлектронногоДокумента = Документы.РеализацияТоваровУслуг.ПолучитьВидЭдПоУмолчанию(Объект.ВидОперации); КонецЕсли; КонецПроцедуры Дальше обращаем внимание на модуль менеджера документа на следующие функции ![]() ![]() Функция ПолучитьДоступныеВидыЭдПоВидуОперации(ВидОперации) Экспорт Результат = Новый СписокЗначений; Если ВидОперации <> Перечисления.ВидыОперацийРеализацияТоваров.Услуги Тогда Результат.Добавить(Перечисления.ВидыЭД.ТОРГ12Продавец, "ТОРГ-12"); КонецЕсли; Если ВидОперации <> Перечисления.ВидыОперацийРеализацияТоваров.Товары И ВидОперации <> Перечисления.ВидыОперацийРеализацияТоваров.ОтгрузкаБезПереходаПраваСобственности Тогда Результат.Добавить(Перечисления.ВидыЭД.АктИсполнитель, "Акт об оказании услуг"); КонецЕсли; Результат.Добавить(Перечисления.ВидыЭД.АктНаПередачуПрав, "Акт на передачу прав"); Возврат Результат; КонецФункции и еще ![]() ![]() Функция ПолучитьВидЭдПоУмолчанию(ВидОперации) Экспорт Если ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Услуги Тогда Возврат Перечисления.ВидыЭД.АктИсполнитель; Иначе Возврат Перечисления.ВидыЭД.ТОРГ12Продавец; КонецЕсли; КонецФункции Попробуй использовать в своем коде эти типовые функции |
![]() |
Сообщ.
#9
,
|
|
Rust
![]() |
![]() |
Сообщ.
#10
,
|
|
Выполни вот этот кусок кода после установки вида операции
![]() ![]() Объект.ВидЭлектронногоДокумента = Документы.РеализацияТоваровУслуг.ПолучитьВидЭдПоУмолчанию(Объект.ВидОперации); |
![]() |
Сообщ.
#11
,
|
|
Цитата Rust @ Выполни вот этот кусок кода после установки вида операции Работает! Цитата Rust @ Номер счета хранится не в коде, а в реквизите НомерСчета. Работает! респектую ![]() |
![]() |
Сообщ.
#12
,
|
|
Наверно последний вопрос - как мне открыть на экран только что созданный документ? гугление не осилил...
|
Сообщ.
#13
,
|
|
|
Цитата ^D^ima @ Наверно последний вопрос - как мне открыть на экран только что созданный документ? гугление не осилил... Главный момент в том, что это надо сделать на клиенте, а не на сервере. Создай процедурку на клиенте и вызови из нее серверную функцию, а потом на клиенте Док.ПолучитьФорму("ИмяФормы").Открыть() |
![]() |
Сообщ.
#14
,
|
|
спасибо
|