Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
1

Как взять дату из строки, на которой курсор?

15.04.2018, 22:19. Просмотров 249. Ответов 12
Метки нет (Все метки)

В журнале документов есть такой код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
&НаКлиенте
Процедура ПриОткрытии()
        ДатаВыписки = '20180326';
    Сумма = ПолучитьСуммуПоступлений(ДатаВыписки);
    ИтогоСписано = ПолучитьСуммуСписаний(ДатаВыписки);
    ИтогоДень = ПолучитьСуммуПоступлений(ДатаВыписки)-ПолучитьСуммуСписаний(ДатаВыписки);
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ПолучитьСуммуПоступлений(Период)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   ЕСТЬNULL (СУММА(ПоступлениеНаРасчетныйСчет.СуммаДокумента),0) КАК СуммаДокумента
        |ИЗ
        |   Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
        |ГДЕ
        |   ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &Дата1 И &Дата2
        |   И ПоступлениеНаРасчетныйСчет.Проведен";
    Запрос.УстановитьПараметр("Дата1", НачалоДня(Период));
    Запрос.УстановитьПараметр("Дата2", КонецДня(Период));
    
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Выборка.СуммаДокумента;
    КонецЕсли;
    
    Возврат 0;
КонецФункции
как сделать так, чтобы даты выбиралась из строки на которой курсор?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2018, 22:19
Ответы с готовыми решениями:

Печатная форма, Где взять дату?
Всем привет. ЗУП 2,5. Имею внешнюю печатную форму трудового договора. Есть...

Как взять первое слово из строки?
Задача такова: имеется накое-то словосочетание в строке, например: "Иванов...

Каким образом можно получить номер строки модуля на которой расположен курсор?
Каким образом через код можно получить номер строки модуля на которой...

Как взять дату из DataTimePicker?
Всем привет. Мне нужно взять поставленную дату пользователем в DateTimePicker...

Как взять дату и контрагента из формы?
Доброго времени суток! Вот замутил такую штуковину: SELECT DMG, Summa, ...

12
polax
700 / 441 / 139
Регистрация: 16.01.2015
Сообщений: 1,566
15.04.2018, 23:24 2
dzola, ТекущиеДанные или ТекущаяСтрока - это то что вам надо. Посмотрите в СП или наберите в Яндексе
0
Xomych
598 / 535 / 73
Регистрация: 01.11.2012
Сообщений: 1,905
19.04.2018, 18:46 3
Событие табличного поля ПриАктивизацииСтроки

1C
1
2
3
4
5
6
7
8
Процедура ПриАктивизацииСтроки(Элемент)
    Стр=Элементы.ДокументСписок.ТекущиеДанные;
    if Стр=Неопределено then return endif;
       ДатаВыписки = Стр.Дата;
      Сумма = ПолучитьСуммуПоступлений(ДатаВыписки);
      ИтогоСписано = ПолучитьСуммуСписаний(ДатаВыписки);
      ИтогоДень = Сумма - ИтогоСписано;
КонецПроцедуры
Желательно запоминать предыдущую дату, чтобы запрос по одной дате не гонять.
Вообще желательно не вешать запросы на такие события, тормозить будет.
Запрос кстати неверен, там сумма всех документов должна быть, а у тебя только одного возвращается
Вообще лучше одним запросом получить и сумму выписки и сумму списаний из регистра
0
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
21.04.2018, 19:46  [ТС] 4
Xomych не работает Ваш код
0
Xomych
598 / 535 / 73
Регистрация: 01.11.2012
Сообщений: 1,905
22.04.2018, 10:46 5
Цитата Сообщение от dzola Посмотреть сообщение
Xomych не работает Ваш код
Значит что-то вы не так сделали
0
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
29.04.2018, 22:08  [ТС] 6
заработало, спасибо. а не подскажите еще, как сделать так чтобы в журнале документов обойти пустые даты
0
Yulunga
314 / 212 / 63
Регистрация: 22.04.2013
Сообщений: 1,415
Завершенные тесты: 1
30.04.2018, 07:29 7
dzola, берёте отладчик, идёте по шагам, по SHIFТ+F9 выводите значения даты. доходите до вашего пустого места, смотрите, чему равно значение даты - неопределено или дата(1,1,1) или ещё чему. делаете Если дата <> дата(1,1,1) тогда
.....
конецесли;
0
Xomych
598 / 535 / 73
Регистрация: 01.11.2012
Сообщений: 1,905
30.04.2018, 08:58 8
Цитата Сообщение от dzola Посмотреть сообщение
заработало, спасибо. а не подскажите еще, как сделать так чтобы в журнале документов обойти пустые даты
Что значит обойти? Что конкретно вы хотите сделать?
0
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
01.05.2018, 13:56  [ТС] 9
Есть журнал документов, в котором есть поступление на расчетный счет и списание с расчетного счета (банковская выписка). Есть остаток на начало дня, обороты за день и остаток на конец дня. Остаток на начало дня формируется только тогда, когда есть предыдущий день, если один день пропущен, то остаток на начало дня не формируется.
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Стр = Элементы.Список.ТекущиеДанные;
Если Стр = Неопределено Тогда
Возврат;
КонецЕсли;



ДатаВыписки = Стр.Дата;
ДатаВыписки1 = Стр.Дата-86400;

ИтогоПоступило = ПолучитьСуммуПоступлений(ДатаВыписки);
ИтогоСписано = ПолучитьСуммуСписание(ДатаВыписки);
ОстатокНаКонецДня = ИтогоПоступило - ИтогоСписано;



НаНачалоДня = ПолучитьСуммуПоступлений(ДатаВыписки1) - ПолучитьСуммуСписание(ДатаВыписки1);
КонецПроцедуры
0
polax
700 / 441 / 139
Регистрация: 16.01.2015
Сообщений: 1,566
01.05.2018, 15:28 10
dzola, Не мое решение (подсмотренное), но должно работать
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
Стр = Элементы.Список.ТекущиеДанные;
Если Стр = Неопределено Тогда 
Возврат;
КонецЕсли;
ДатаВыписки = Стр.Дата;
//ДатаВыписки1 = Стр.Дата-86400;
ИтогоПоступило = ПолучитьСуммуПоступлений(ДатаВыписки);
ИтогоСписано = ПолучитьСуммуСписание(ДатаВыписки);
ОстатокНаКонецДня = ИтогоПоступило - ИтогоСписано;
НаНачалоДня = ПолучитьНаНачалоДня();
КонецПроцедуры
 
&НаКлиенте
Функция ПолучитьНаНачалоДня()
//Перемещаем фокус на строку выше
W = Новый COMОбъект("Wscript.shell");
W.SendKeys("{UP}");  
Элементы.Список.Обновить();
Возврат  Элементы.Список.ТекущиеДанные.ОстатокНаКонецДня; //Зачем вычислять. если у вас уже есть данные 
//на конец предыдущего дня. он же Остатки на начало следующего
КонецФункции
0
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
01.05.2018, 16:34  [ТС] 11
polax, так не получается. а как еще можно взять данные за предыдущий день?
0
polax
700 / 441 / 139
Регистрация: 16.01.2015
Сообщений: 1,566
01.05.2018, 16:37 12
dzola, Какую-нибудь ошибку сообщает? Что показывает в отладчике на Возврат?
0
Yulunga
314 / 212 / 63
Регистрация: 22.04.2013
Сообщений: 1,415
Завершенные тесты: 1
01.05.2018, 16:51 13
то ли я совсем не понимаю, о чём речь идёт, то ли тут просто надо регистр
брать срезпоследних и всё. хоть год не обновляй.
0
01.05.2018, 16:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2018, 16:51

Как у DateTimePicker взять только дату?
Есть ли у этого компонента свойство которое дает возможность брать у этого...

Как определить ячейку, над которой остановился курсор в Datagrid?
как определить ячейку над которой остановился курсор в Datagrid

Как получить строку из TextArea, на которой в данный момент находится курсор?
Использую ext.net (1.x) + asp.net Как получить строку из TextArea на которой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru