Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
dzola
0 / 0 / 0
Регистрация: 18.03.2018
Сообщений: 14
#1

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

15.04.2018, 22:19. Просмотров 222. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как взять дату из строки, на которой курсор? (1С):

1C 8.x Печатная форма, Где взять дату? - 1С
Всем привет. ЗУП 2,5. Имею внешнюю печатную форму трудового договора. Есть кусок кода... Процедура СоздатьИЗаполнитьТЗподстановок(Строка)...

Как взять первое слово из строки? - 1С
Задача такова: имеется накое-то словосочетание в строке, например: "Иванов Петр Михайлович". Необходимо произвести поиск (по...

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

Как взять дату из DataTimePicker? - C++ WinAPI
Всем привет. Мне нужно взять поставленную дату пользователем в DateTimePicker Код примерно следующий: HWND hwndDP=GetDlgItem( hwnd,...

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

Как взять дату и контрагента из формы? - MS Access
Доброго времени суток! Вот замутил такую штуковину: SELECT DMG, Summa, Prihod, Rashod, EndBallance, Notes, Statiy, Status FROM...

12
polax
605 / 379 / 122
Регистрация: 16.01.2015
Сообщений: 1,276
15.04.2018, 23:24 #2
dzola, ТекущиеДанные или ТекущаяСтрока - это то что вам надо. Посмотрите в СП или наберите в Яндексе
0
Xomych
576 / 519 / 66
Регистрация: 01.11.2012
Сообщений: 1,841
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
576 / 519 / 66
Регистрация: 01.11.2012
Сообщений: 1,841
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
281 / 184 / 47
Регистрация: 22.04.2013
Сообщений: 1,073
Завершенные тесты: 1
30.04.2018, 07:29 #7
dzola, берёте отладчик, идёте по шагам, по SHIFТ+F9 выводите значения даты. доходите до вашего пустого места, смотрите, чему равно значение даты - неопределено или дата(1,1,1) или ещё чему. делаете Если дата <> дата(1,1,1) тогда
.....
конецесли;
0
Xomych
576 / 519 / 66
Регистрация: 01.11.2012
Сообщений: 1,841
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
605 / 379 / 122
Регистрация: 16.01.2015
Сообщений: 1,276
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
605 / 379 / 122
Регистрация: 16.01.2015
Сообщений: 1,276
01.05.2018, 16:37 #12
dzola, Какую-нибудь ошибку сообщает? Что показывает в отладчике на Возврат?
0
Yulunga
281 / 184 / 47
Регистрация: 22.04.2013
Сообщений: 1,073
Завершенные тесты: 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
Привет! Вот еще темы с ответами:

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

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

Как взять имя текущей базы данных, с которой идет работа? - SQL Server
Привет, Релиб! Горящий вопрос... Допустим, я выполняю какие-то операции в базе 'Mumu'. В какой-то момент я хочу взять имя текущей базы...

Как сделать выборку, при которой не стоит учитывать определенную дату? - SQL Server
Добрый день! имеется таблица employee, с полем created_date, нужно создать запрос, при котором не будет учитываться определенная...


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

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

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